From 9af2bb814e9978c2077be4686966c4921d4ae7ca Mon Sep 17 00:00:00 2001 From: l-proger Date: Tue, 13 May 2025 02:50:08 +0300 Subject: [PATCH] * --- .gitignore | 11 + Assets/Boxes.mtl | 26 + Assets/Boxes.obj | 105 + Assets/Boxes.obj.meta | 3 + LEditor/BoundsView.h | 13 + LEditor/FreeCameraController.h | 67 + LEditor/LEditor.aps | Bin 0 -> 861528 bytes LEditor/LEditor.cpp | 167 + LEditor/LEditor.h | 3 + LEditor/LEditor.i-40ee66e4 | 250091 +++++++++++++++ LEditor/LEditor.ico | Bin 0 -> 428446 bytes LEditor/LEditor.rc | Bin 0 -> 6832 bytes LEditor/LEditor.vcxproj | 105 + LEditor/Resource.h | 31 + LEditor/small.ico | Bin 0 -> 428446 bytes LEngine.sln | 37 + LEngine/Archive.cpp | 7 + LEngine/Archive.h | 109 + LEngine/Asset.h | 45 + LEngine/AssetDatabase.cpp | 101 + LEngine/AssetDatabase.h | 36 + LEngine/AssetFile.h | 225 + LEngine/AssetImporter.h | 16 + LEngine/AssetManager.cpp | 73 + LEngine/AssetManager.h | 30 + LEngine/AssetMetadata.cpp | 75 + LEngine/AssetMetadata.h | 29 + LEngine/Bounds.h | 44 + LEngine/Camera.cpp | 31 + LEngine/Camera.h | 29 + LEngine/Component.cpp | 18 + LEngine/Component.h | 19 + LEngine/D3d12DescriptorHeapAllocator.h | 83 + LEngine/DDSTextureLoader12.cpp | 1476 + LEngine/DDSTextureLoader12.h | 88 + LEngine/FatalError.h | 19 + LEngine/File.h | 46 + LEngine/Filesystem.h | 14 + LEngine/ForwardDeclarations.h | 35 + LEngine/ForwardListItem.h | 8 + LEngine/GameObject.cpp | 18 + LEngine/GameObject.h | 94 + LEngine/GizmoVertex.h | 24 + LEngine/Gizmos.cpp | 131 + LEngine/Gizmos.h | 41 + LEngine/Guid.h | 43 + LEngine/InputArchive.h | 49 + LEngine/LEngine.cpp | 26 + LEngine/LEngine.h | 37 + LEngine/LEngine.vcxproj | 185 + LEngine/Material.cpp | 198 + LEngine/Material.h | 57 + LEngine/Mathf.h | 14 + LEngine/Mesh.cpp | 148 + LEngine/Mesh.h | 49 + LEngine/MeshGenerator.cpp | 80 + LEngine/MeshGenerator.h | 15 + LEngine/MeshRenderer.cpp | 54 + LEngine/MeshRenderer.h | 31 + LEngine/ModelImporter.h | 36 + LEngine/ObjMeshLoader.h | 416 + LEngine/Object.cpp | 39 + LEngine/Object.h | 104 + LEngine/ObjectsFactory.cpp | 21 + LEngine/ObjectsFactory.h | 58 + LEngine/OutputArchive.h | 53 + LEngine/RenderOutput.h | 39 + LEngine/RenderTargetOutput.cpp | 81 + LEngine/RenderTargetOutput.h | 28 + LEngine/Renderer.cpp | 179 + LEngine/Renderer.h | 79 + LEngine/Scene.cpp | 14 + LEngine/Scene.h | 26 + LEngine/SceneRenderer.cpp | 308 + LEngine/SceneRenderer.h | 20 + LEngine/Shader.cpp | 76 + LEngine/Shader.h | 56 + LEngine/ShaderInclude.h | 68 + LEngine/ShaderParametersBlock.h | 159 + LEngine/Submesh.h | 118 + LEngine/SwapChainOutput.h | 124 + LEngine/Texture.h | 18 + LEngine/TextureImporter.h | 33 + LEngine/Transform.h | 94 + LEngine/Vertex.h | 27 + LEngine/WindowRenderOutput.cpp | 242 + LEngine/WindowRenderOutput.h | 32 + LEngine/d3d11_helper.h | 25 + LEngine/d3d11_types.h | 44 + LEngine/d3dx12.h | 1766 + LEngine/shaders/car_shader.fx | 57 + LEngine/shaders/default.fx | 64 + LEngine/shaders/gizmos.fx | 32 + .../shaders/lighting/cook_torrance_term.inc | 70 + LEngine/shaders/red_shader.fx | 47 + LEngine/shaders/shader.fx | 63 + LEngine/textures/1_store.dds | Bin 0 -> 349680 bytes LEnginePlayer/LEnginePlayer.cpp | 7 + LEnginePlayer/LEnginePlayer.vcxproj | 90 + README.md | 3 +- doc/CppAMPOpenSpecificationV12.pdf | Bin 0 -> 3815921 bytes doc/obj_spec.pdf | Bin 0 -> 492683 bytes 102 files changed, 259423 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 Assets/Boxes.mtl create mode 100644 Assets/Boxes.obj create mode 100644 Assets/Boxes.obj.meta create mode 100644 LEditor/BoundsView.h create mode 100644 LEditor/FreeCameraController.h create mode 100644 LEditor/LEditor.aps create mode 100644 LEditor/LEditor.cpp create mode 100644 LEditor/LEditor.h create mode 100644 LEditor/LEditor.i-40ee66e4 create mode 100644 LEditor/LEditor.ico create mode 100644 LEditor/LEditor.rc create mode 100644 LEditor/LEditor.vcxproj create mode 100644 LEditor/Resource.h create mode 100644 LEditor/small.ico create mode 100644 LEngine.sln create mode 100644 LEngine/Archive.cpp create mode 100644 LEngine/Archive.h create mode 100644 LEngine/Asset.h create mode 100644 LEngine/AssetDatabase.cpp create mode 100644 LEngine/AssetDatabase.h create mode 100644 LEngine/AssetFile.h create mode 100644 LEngine/AssetImporter.h create mode 100644 LEngine/AssetManager.cpp create mode 100644 LEngine/AssetManager.h create mode 100644 LEngine/AssetMetadata.cpp create mode 100644 LEngine/AssetMetadata.h create mode 100644 LEngine/Bounds.h create mode 100644 LEngine/Camera.cpp create mode 100644 LEngine/Camera.h create mode 100644 LEngine/Component.cpp create mode 100644 LEngine/Component.h create mode 100644 LEngine/D3d12DescriptorHeapAllocator.h create mode 100644 LEngine/DDSTextureLoader12.cpp create mode 100644 LEngine/DDSTextureLoader12.h create mode 100644 LEngine/FatalError.h create mode 100644 LEngine/File.h create mode 100644 LEngine/Filesystem.h create mode 100644 LEngine/ForwardDeclarations.h create mode 100644 LEngine/ForwardListItem.h create mode 100644 LEngine/GameObject.cpp create mode 100644 LEngine/GameObject.h create mode 100644 LEngine/GizmoVertex.h create mode 100644 LEngine/Gizmos.cpp create mode 100644 LEngine/Gizmos.h create mode 100644 LEngine/Guid.h create mode 100644 LEngine/InputArchive.h create mode 100644 LEngine/LEngine.cpp create mode 100644 LEngine/LEngine.h create mode 100644 LEngine/LEngine.vcxproj create mode 100644 LEngine/Material.cpp create mode 100644 LEngine/Material.h create mode 100644 LEngine/Mathf.h create mode 100644 LEngine/Mesh.cpp create mode 100644 LEngine/Mesh.h create mode 100644 LEngine/MeshGenerator.cpp create mode 100644 LEngine/MeshGenerator.h create mode 100644 LEngine/MeshRenderer.cpp create mode 100644 LEngine/MeshRenderer.h create mode 100644 LEngine/ModelImporter.h create mode 100644 LEngine/ObjMeshLoader.h create mode 100644 LEngine/Object.cpp create mode 100644 LEngine/Object.h create mode 100644 LEngine/ObjectsFactory.cpp create mode 100644 LEngine/ObjectsFactory.h create mode 100644 LEngine/OutputArchive.h create mode 100644 LEngine/RenderOutput.h create mode 100644 LEngine/RenderTargetOutput.cpp create mode 100644 LEngine/RenderTargetOutput.h create mode 100644 LEngine/Renderer.cpp create mode 100644 LEngine/Renderer.h create mode 100644 LEngine/Scene.cpp create mode 100644 LEngine/Scene.h create mode 100644 LEngine/SceneRenderer.cpp create mode 100644 LEngine/SceneRenderer.h create mode 100644 LEngine/Shader.cpp create mode 100644 LEngine/Shader.h create mode 100644 LEngine/ShaderInclude.h create mode 100644 LEngine/ShaderParametersBlock.h create mode 100644 LEngine/Submesh.h create mode 100644 LEngine/SwapChainOutput.h create mode 100644 LEngine/Texture.h create mode 100644 LEngine/TextureImporter.h create mode 100644 LEngine/Transform.h create mode 100644 LEngine/Vertex.h create mode 100644 LEngine/WindowRenderOutput.cpp create mode 100644 LEngine/WindowRenderOutput.h create mode 100644 LEngine/d3d11_helper.h create mode 100644 LEngine/d3d11_types.h create mode 100644 LEngine/d3dx12.h create mode 100644 LEngine/shaders/car_shader.fx create mode 100644 LEngine/shaders/default.fx create mode 100644 LEngine/shaders/gizmos.fx create mode 100644 LEngine/shaders/lighting/cook_torrance_term.inc create mode 100644 LEngine/shaders/red_shader.fx create mode 100644 LEngine/shaders/shader.fx create mode 100644 LEngine/textures/1_store.dds create mode 100644 LEnginePlayer/LEnginePlayer.cpp create mode 100644 LEnginePlayer/LEnginePlayer.vcxproj create mode 100644 doc/CppAMPOpenSpecificationV12.pdf create mode 100644 doc/obj_spec.pdf 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 0000000000000000000000000000000000000000..f572c8aeb2daf14bd6bf663495b857d05f72afd1 GIT binary patch literal 861528 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d323b07fb8d8b417bfc12e7c46dea88bee17760c GIT binary patch literal 428446 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

N3mPu2mM3; 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d323b07fb8d8b417bfc12e7c46dea88bee17760c GIT binary patch literal 428446 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

N3mPu2mM3; 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 +#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 0000000000000000000000000000000000000000..93d630a232125c545c2a4b98e8d2f99a7f2a2147 GIT binary patch literal 349680 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 ZhyGuz4~V>leH=AQ`7?@hNj}o={{xg<%{Kr5 literal 0 HcmV?d00001 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 59ccaba..0e34532 100644 --- a/README.md +++ b/README.md @@ -1,2 +1 @@ -# LEngine_deprecated - +# LEngine \ No newline at end of file diff --git a/doc/CppAMPOpenSpecificationV12.pdf b/doc/CppAMPOpenSpecificationV12.pdf new file mode 100644 index 0000000000000000000000000000000000000000..895adcae9a6407f5e00776b71c990cdb4447eeae GIT binary patch literal 3815921 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 G?5p6=ut=&tHGjrruJXzl&pdT0%XLpHG32U&Eg^ z@STHXHdpV^lJ1UWx(zOka^fQ`!p~23j*#V4hd@f{9DrMv&<#Z(u1eo%!I{8Y8DgA1 zXOJ4hkf;~>$!l}uRm~d7n>A2*Mwt>>DE&!l093MEGsx9=I@nqLu6bol$vUN8qGb4+ z@_gGfRn1%fKvJlEDIDJvd+r2=1J@!S3+gNqsr0{5ydttpvdC&Z2d-;Jx_&cq&p<8ROBR7A}Ee3x7XWtdn)-X zX}GZFhIPeLf||poQpSmu3Cu`e#YoOs_VjIMCFBO>136TlQ;cZbirD0yom;Qko+nc5 zZ<=-Q>2-UeIkTD2Cr+ge&YXtYG0FM}_QvfpjJ(OXwLYN*@wAiwxBI#pvU_ z(%w=8cEZaYd3ZQ;_NH+s+H6K*EDH_pZAUvb8gU(w{vS(uoSJ!k8S3c`7Z|%Tp zzG59KRvb>d&Vl%@`;lV>zf=9;X1Q>&j>I13M^~HHY~|b|7O_KZnxt2fMR<7y{=8Ol z;%yx6IUpAMfP0x6Mpc7%v7i}1By4+tahKhym1vH{DY;~+j*78+*DjtN+}ibyJ-`x` zx?266AaMY9cWo6XPJ)9r6|U$##5KZQ59(|A{g~O1;Pp z)xoIffVe2?z-38aaA_Js#ymPcCq~9{zpy;y1NVjFgy&Z1K+u6%ZjBE1RjH2R!CZ?c z*Y31jAQK0E(Dg8q!bwi`5z4CO;`wS}c(IMy0`;shof3_)fMyzZOV*&8UZ5r%-0)+{ z8pbwzfWChl$+2>E{5_AKdzL=tv2G}(we5aYWrpzmTIKrp;gU3m`jgy_7XTK( z-%A%`AFH`zH^*#f?!D6|z*8``V!>wm{W>odpI>$ot3Vz&X?2fo{KhOKAz3U!Jglzr z_L2iUy2$_p7GF{-VP+bN!`$NI=>*Ef)v;E|LzlR6Jb(`$)%X!IrstrXf!ER5@pyLm zx{x-vwbK9iWLB-It&RKU`fdu1|9Wp`)6l}rQL6RkF5m9{{<5@Xt{BpiGxt0(k(E;# z^Dcr))Ku7HR#IH@vVZkhTgVZV^zQn5L3c+_UgI#kkAIR&<*Dz=?e8Pk##O}3-fTd+ zQft=eq9i;fqG4tCBQuz0aXW$$FS=&loHDn^V`2`;s@_QpD`&TcuCQ9#+EyawlXJND z3*H~=!^BLorH@N@q&3!F>?>~DcpsiVjA=Xuj%q1(QtOaZZtlI{eN|7dD*fChmzB{i zaf|lW(H^MMY+anPHcWPTD&OPxKCg0|c05*(>D%;8gJVUJuJm1VZ5+PuRGPLvU(d5E zjw(_}0eU|#!Ytjjg$MwfDb0Vb3e?OIokqb|T;URfC6ZcbsbTezGS*4c7&nNcX8IyJht zGL4y8;8`lO=ESB0Z~vA#j?eU*rz)lT&-*Qh zDlM_6bEQsMdtPB~59YN>qiwSd(@x8Gh=qUYXtKSze;n&}J@cP*$!0*u;%em!QrY|0u2d;<{uhYqE<9^(I{BHe9*r zAFK?{$gP5Hnn*~rs8b$hD=o;c{7S{z`B2<@AkA@wXu+pHct3sxT9C-s6ovMn9Q=SN zz)7x&HhvAYlIh9*j>qnc(!Ni_Vzxy|o`nc+D}$`Rn3O*>%C2`ToPSgdALA*R>-7Y$ zan+`fsjYJ!PW0GaUc6$+Boeict4?i;COK1f`T2Lqk|sijnMc)rrwJANa?*-UUgK9Y zZ#i{3KB?mRW?<;rAJB<)4BDWM2vQdYDGY?mM;TcH5lb}hC1V0G<@>Hs z3ZgOP`bI2ZNF46%N%wmtJFr+joQ{pt75hv_wbqxaO}oWgk0@3)d!IE7WD+EZx4QH3 zfmh|FYL*8ZH$&~fv*54e3y5&$27{i7Tb5~U<&~~+6&*gUeqyRayi44V9zlpbOQ{8q zCJgwVS&dvAE{X^#zk8F9etSR7>R9&-JdkZya+RWzJwXt?B`D+&R(0v)X;R%Bmqi}+ z%`02rtL$o;Tg8ABLbKwp9N>-VrQX%zf!iyPK*ph42~-?7_+uS;5k;f7+qJeVR~KCr zo(3cFF$4NmKd-coc1AmZ!ML|3w+Mzd$Zc-o@ zg{PV??XSTY$az4Tcg}1f+36ED;ul~=&+$?9| zDypn*g^zLV9=ij-o1=ziTu3-lqvc!%w_P?Jk|}W8+F;4$t-DfJdTY3XnZj;tz*Kh_ zE!^Hl6NlKku9V8ms*>nq?_I(mAUZhTq2Xy#g-qst1Z^~FNB!zNCp6*vZkm2({+Mw% zirh&#KV>~K*s5U4=q!J6Wou{Ud#S5#^-Pjj{VFqzOp$K#dn8;?rf61*o;_w% z|H!rwdZfOWvso5pSK2=)z9|&4OOF{sgkNRatsDH{Cyk0?U$KwZ&eLsFI=?7;o;S?{Mo&9b^XL`xY>GuFdV`l|4H56{Sg7! zLb8kgEKt8}hzo8V3cA_0)7+Lu2SQ;b7d@8JM-1u=ge=;@1n}2(-8Vss>@^PUsX+s!P-W(PK&!9*zB2tZ7^L@KjkHM^h z-eD&;;Ehhpdh6{3?+RFPUp(qVuGQ9%8Ug?blIwSH5?VU!Dn7@~{(7fpJ<~jcmizI8o_tJ+% z#?Py*8Pm%I@%|zZezvp8-qt6v>>%n)iVdp%5@^t9j=(99Az9l&Utbx9pcGR}&;mx6 z0Tp`f__5324tcs$ZAbLHHT>v0ZRgDoS@!}t6oB+AosLn(IzNN-PPViN+b(<^XlkMq zo%SfKQ*^)P*o*JLj?kF+L;8iHX{D+Xt;bj(^<^1pY{RnyO^iGpgIg_#EFmn032A4+Rhb&)}JYoQ@*c9{s63V!Z3Dhi9gR zk6ZV~_D}U>Z07QensQQD8F2o#w}JnZ&5$3S^z(1B1trXV zh&p6cl~&IKlK?%tX)<%@<8jjV>bB;?_G*_ zwo|XADvuWJr1UHDr0O1c(*|Yuacnw=TAD#^x;n*OWr#{aF0hIojen^eFfp_9Il`ul zh#R>nG%zlgx&?E_Z9%XV$9QR|J0m}Nth;@DVP$P(IFlbF-*H%{H^epFp$ThA37OS?*!(oy~4#~-@F1X zj}!EKj*;6u=Q`927W))?czL^tMr?NS#|8bxQa$R#agN>Jb*Qa*1?LjdQ>23|2;&Lc zcB5~)Q^x#6(cOdbkwVHC;Nq4skmsP$&Vy~nwGDhk=5P^2-9hdt#QfvMV*Pl@#q{`N zA!wrWiGB2~sm=9Qgl{>f8$RPo1bF+e`p1yO;l&^I`r8WbI47l?-~S@+;O~~Ik(o&$ z*;a}GmMMjp$=L5wBD~YdOo-Xh-?13$FY1<0FSD||aKHe^0~Ivv>C0ek*Tqn01|I<) zE@VXs%TZub$+f+lGAcTLMGF`jyR@Z=fPqMv-WUhT~ga*68*K zCCuP*)$NECn{EgA$}nh9gnendMB?=9q5>d z#E@UE2t%_82dA;G7Ss)09N{V@Uj4qgB*Ko6@aaG3)yal(nk|3~uQp-`mJXOxYmFf>fB z7VuVQn=j7>Zf6jm*GMidv>c?0Wn$yg}}%YDk?#@`GxHln|I4 z8Q(+ucy`I`g7O}eF1D5H_m&#Bw)ORHUuErh<+W8Rv?)sE>TuVC!z(%j2)JJ=2lj%% zWHs%_0OisJ9JT9PEK|}OEUIbqb5|M8kHl8J(sbi`m2m~*CdIcD${ddMC%x!pCT(cJ za+76Yx98*3@vmTt$9<|Q#HXJGe&{3&rQrWK;n-47IVg8DEYV40N;(%YVjP%}YDo-i zKb<9X%b~c_BRNg@@*O4;JwpQZs!l8jLDjRzp|6(;Vu$ zxI{$ebB=;I-&@Mpt%+3}jEBG1CH?bq|>bo?JY&e%3n5A7I0(2_gsm+d9cb~#i4er0G)00GW)|8+4#TwJ$Ff5YH%9_ z4Q`2gP@aG((145gA@0$S|#R$FBqfAg6|p$fywbEdCWM{ zaPeRnvRG>d9H8;SzuxSNMNOGe$Q#9pk^&A%YY~Ex*_J49u}vza$s^k44@Ilzf7HgC zL_{WPv(kw3t$JXd5}Fe4=X!30Z75d-e-iav!(Uk zP_}2*qkfKOb7IHI$^m;gsSeM%2nxC?Lp_Icqz~?=FVQljY{~lac|Bq!Mfr5A1v12; z0ogYN`9hgk44AcF5{Ac#U^2081*&>>xbU$&>uYf)m~jqZAL5zhw{ z-(#5jNuG7dl2@ZDO?aHko>WdfFINMz3+)BeRn46Q-Z=bMIaD}G?~1o zpV*3o9@&Y@Z5H^g0RG}Y8r;RMU&fWSQ1?g4)3jIv)n^DOVKN(vhUXRLjm?_Aj8Zad zZet_146=p|wDc3U#Ha0319rc|>ZYn!MaeyU4_Amlgb;Gj9x)q#6}zW2*WGZEpQi@P zDVK5}CsfRTmM0e8d=w%=I$I_}5y0R;nKgypvzuP_eYzZKeG4U;g;FT*9+HsO5QTEy zB%<|S2(uKNg=5QjEwy6e3my1ny#k)OR&hI49%5HFJ*Nj;T+{?QtkK#>B1>#bB4lf& ze@W`Zj+PI4o9~0R*N(SjtpjE-{epN!%!ugfUWV43ix@0`OUweZpuBT}xwY*R!4bxD z(6YkVPmS;qM6-PZi|IS(@0uq)r?`K|Q?LdEdi|4`#&20^$SU(I9jyzm4*q4_Wn~7z z>hNI7Jn=x`WcXFd^g#hj2@rL{YC6sW{pir1j}x?g>2HP@N{%@@djS)sp(#Y zBqG~uQe7Cs!wqN99XBWNv%L2CW$CjF7(s$x=X^9xE8v7|%z%&)`Gq6JEPU4Fg3<39 zOf5`!>QhqNzb4J+!nA^p!}Q@8A?mGRoK@WYhv%Ks+~!X%CSF(X+hxDI5!a}1tPP(u zKkh1aJi@NOMC)Qs%N8R)jl?zoc$DqoIDNbkTj?kti@Un=f<97%@pg3vmdd^P_x53`5C$!5%s1QqZ7537kQ={NO-= z0dU${QmE61jRXwhAjn!BEuB1{Sa3bpz8 zGpBzqHjh##IoBIK8RY4l6q&J$yWXSHG(qrn`|aZ;Av_uB{pQ@Ti8C47)ZL;mujoNH zB&)x(mdPjUx4Jcd?r13H{zx5FD!Jun*?zivixn%U;S4Y%bEfCiAVr!;H;7f4tKi#S}c8i{fwV zHcq4%1&@;pobBg_}8;x#Q*}wdBX#}K?co!7`5AT@;@ z7kDL25!h2L`0fGbh!eQ$|!X4sC#YzUVnDo*jT6J@G~90_Bl{n20$^ zu`8zQyuM=ZX$-q5FaL5W2(#^(exW8-9_x~`2iRBU2bH6*wT5G{4%t-rsf5^PZ1wSs ztg|Iu?bEKN$biz(i}pZksMdWc`3c{TXVlBjp=d<1FL;2kOu58Dk1~Ia8dvw&eM9)O zQmY-&b+0I_;>lA{QsMIRV3~ctjA7Lv2P>V4y)>TVSLSE>Nq61dFEnUPd6R3%^n=KQ z0T~4GVYp9du_nU1x%pPWSC6}LPs6wm7#<0?K{$sSr@A(>mv~(u>^mT|CD6e)d!wSy zW|`&W@73B9CvRoYRbUwhBZ<6L%0KvIx{@4yqv@PX_C<5q_eUD?Q$V}r7RgXWIQc~H z;65J`ry|zKK`se)@r8>7=ixRDTn_rFwpF&Vxuq~AP?q$T(Kcs zPkFWwBSBKJ5XocwF;{=d7EpyNV_uSa`;WWw(}P6k5dC%zxZ~ID`>m< z&GGS0#2X8AF-1G#>v%xWq~9 z5@#YjIIhiK>;|b`?v;~Yo|K)@<}X`GjDy-I?cZV7Yl2OcoXP?O{vZvTw$Gy0=51Q%p(i8^)D(ufWK6H{$E)qM*6?7P9NrF3u-ZYT?1e>NE0g~+kYWV%*+h`g)}j+v9kPeK9zrPOw9j{X_7S5{mpxQ zKu7<9H!=SMf%*@;3BbVm8*gGGU|<5U6MURTli=?V(Qmxze{}U*KBe{|3~@M3Wqgz1NMPu)PsHWRQSy3dTLGjOV=;UyL0Pq7i9hGZZ(K2 z6KZopiBRU6t00+HJ3{jc&j8U#^b#-Mt*#uD6p0?%f`aHXIMoTc2lU=HR_t+n=`1 zu8rwDiOVWWmyXYZ4kiXm6W?P{i=_Hfl}1`Zhsd%FYCB)1D{1jFdCF9hE`KE*OsrRI zSV%8Ey&!#c!tT)e{?_68j6ad}s^rQSNHViz9pJ#B8~tQByS``Qxvu%-y^ zls=dBaY9$btv>k1=hw3$HYU%u_BEO0DV6rily2qn3eh4P=SI)h0jbuvoj@@zX$XzZ zr=y4${slUfcNe(yCZDJgk%yxf+eVHcy5mOZ2i10;&I_w81;)tP6St*YHLuvq&G$0w zTZ7w~iX(piT^bGTDy_=5hSrUA`xEdXGqL`CK|%I)dxtq2{O|IB>Ur)8)kzMh<^$l} zxsY^8NPelY5mg@b1*H|&*BgVk1;;8;kE(*;iVKyls6tX+stBK*+-(n>y^SoM=dyEP z1o?fP%ujMG07DT)6@(8pn z1f*9Z%AU=EbnsUrxb92eHy1v6MEFGtc{6{XWBv+~xBlKB-JOTQWh!fuL?){1PRGy@ zKh`cW(%Df6X0+HvQ-)O?ju6>%l3*x_400z0L9&t5I*R~;oqJMX-zNRKw0u(ORq#~=Q*{)_9o-$&KX72^o=v`+rvA*t0*Jd(7^d3N845`^s7A^Mo>&=?$vs`H@={&X z@taP+w#YBIxzTD4Yhmr^MDF7|s9HpzX8nX}15&iqV$=4rZo}uE zHnQxAAy4W^H<}v4NM3EfKx|rZLD5!NEmB-0U}4TkiaXEUR3Awy_)?H2kS5i;h*vU` zG*kR!j+U2;F(g-z1g41F=R`=!ZyKcAuw6)9-P#B|a(^{Kc5?l$%b?Wcr7sX@zCtzSk&JrHB}8C^!v=d6&I1TV(e2F7 z)-UvhZVuJ&K*cWKri6vBMQuw!j>72I|4AN?{*xRIjW2xKKo5mdTn|O1Wv1LrLN8ug zF_+?-&2%NRAmX$P;@vDEl+bGnoE#U7_$!CN@2whQ+=fHJ_I5bA#2DWvcidb9Q3^OY zj27Vq!cZn*vEZIbrA9cpFE?ZYD1j|*xVdbX;vZWaA6w3wZ3PE@2`9S0oQwlYpKSmsKz%XVxdI>!4O@y4s%>3^G2T-^G>1kb>dBbl3%xU zk&8g4`x21|tEtP8LPaoIg+|z}fV7dZ4C4Txev-Fhpd3ud&gg{OM&|p4GY%*?EtAuI z`7AYynU_vlut;uazh)VJ#U>mgw|^MAhGCfgmM^z&0y2TIhp1H|hi0NTj$!zrb-g(} zGO!n2Czn}mG8W|Zc!Wu5$F0cKsWlYAeny4v#L$h~38&?)Edch`I+;|CI9K3^fxA@TZJbVP znL|==XP!)JQAvqcFC5FMn77S;i1e{VX5RLZjyY|9d+3<-OP#1~I~Rg^#;`3B`dku~ z10!vJU|*ol^I*BXPH}TZd)d6XH<32Pb@mxcCJy=1R%Ry8g>uLAa!E2T;@kpLX6H(m z^u#VRaP|-_*#>alB~me4ES6JcV^4hv_@YuO$4W9zD*Oc`D$yAm42QhDtxT=DQ5WV; zC9_32PngJj$MPFWXc)kZS;_E4Dzdn@^kdV{5NDiGPu9wUOFA`KFG|2{RscJR2~K|7 z7DC<5$OCTNH-CcA#39*%gQ!csNMMqK;l$yav+;Zfx4LPEU1P<4T-|DgrG>5C0$N6n z$%W@E#DY5qC#qQ66i`N7>6u5H#2Ol*iMV7PDw&HA#l41qHY9^)Falx-%yx2MnlE1z zDtvGF>JmFnDbgKskYg*m^;1nIe1+tWl(x-2k*DH>NDKeOL9y%R<8t}|(b6k5a`hjw0}^=n(xSkqVZ06i<8#74D+B%)*bg`mV9wS~s;WWh(5 zz+~Hnp!tsfb&pC*r4PM)mM@-^|**NrqcAbu>~=G0rv-!@+wHFub&DZChrZACkB z)Obiu1uo2CW^GCvd<2tcf3`0-(y=P4v01ITI_2+4wg8XlGH_y#ld7#hQGC#gVObLJ z(U>+sW*6V`goC79kVk8cVX>U8bh3=lriIB(hKyEUS@^mNnnw_-4qoDJOM{WEjq*v3 zOGc!NDDrY0^{{$s%Dn8m0=M)z2tr+QMTrYZaL`b9;AS6{msE~_VsH03!>%(x zFPMXRn1AHhBECL6S<#nJO4231Umh~hCOVfqtOyB)4SHG*O@;(R*t`Fa*Kf{RK10#+ zYujl~#`E+S_QiY2zv>3FmA*Gz_6rr=JV5Y`EL&`|k-ZB@-pfp!8>?bbmH4cJe?7oN znuGzdDr>n-VNA{pi?AEEVe>S_d%V`~fJq6gN=t9$r`o{SQ9{qQQ}pVWxCV&~e1a>h zu!9Rj-}|ihp>IfR8_>l{s8a!+MEt?$%}>2?oYZwa;~doBetO7JiPLIc34}-VP623Z zYEJdR@ru#}V&cuUNG0)I^ujS!NG0Jw;$F*2A&UGu-YTahf|U51-q$#D;3rvlXWL#@ zXB*Z!nnQz0yNf0^-)7{Ll8?jBTuAg?8nF)~Uw(Kt-QyhScrf(!*nMI$8BVdS6OOWx zliQziP?T6tEQA*R1q8IT{qUdd(3tw z2Wn99^u`nr?$tDIZ4t4h!LgL7twObJ-b6e7?>>@t>;WJ2LBp*aRL zOm-762R83i=2I~Q${`^-3(dU zd)Z6sVTb#E{`j8Wul&2LNQkT?Rt}OHaDRY`_pS^=TwzvMmSHeBs>GLR<0A{Pe)QO- z1s6t*`mi*T>uID!mMQL`>6wLL!|hKVo$RLFItm!!mG{PFK_WxCa2AE;4)v+qr@c#o zeuhl&v#<8X*rY**_y6(zz`|s~DhIEdnmP zcZ8W%6VFn)V^=JK1)zG?So`|gA zd=tPBf1ud zXw&Bpmt1%S$QOVJ->dw}=PoE5p$cd-&DEmjAD8^0$fu$HbzHqzv69Is<|_j0L<5PK z+ZOSV2U3dZAuU~;p;uFVE;s}z2abVk1CxS%%@l~nLrgV;$&t8G1mmH_w|t%X2z%`Oda<4HwM!dr;QvGSsxry7+>sMNSsgaOL_v z3)QTqA?n`1NE?c%VkEeFv?|fR$`IV{0Qt;1-NKYa<%EcG)5Sa~CtTA+KUMD_=C6NN zroE*-2N(6I`Q+7Mlw5GIiF}D_%+F-9rlOg3VBKugHMZn{t#2pEH2S*e6U^mf6b|a2 z%4cLE3?n7TBp6}@Q7>1^%k(j_+F<#A$zZQ%7Q{x?dwa0KoB4!xl~HhH1)I#-VVGtu znc$SU(#Gk=!3|yMIdTy91W9rbCy$avZ`pXu2Bu*$;s_weY&8f5s=@DVK^rWdu~h^% zud|7r@Ogp}GK8EVmp{ReEW_S(4`1M{? zCNb^_P(upZKOpr!n&fi8A%s$95SB79Bg)mgC4XwtAqlr#Y_N3JtY=oCS)V0YQ4V)R z)o{kE=Chi_u*L<_Uyi1rWzxeBBzxDG(~J2`-UECi7>OvJRDYcSib?Ibh4%@ko9m0K zACMsYDl^V$39DC_A{1uTB@(yssqBiaN+(PHE?PUe4MbaRQxPI<8|GL2(-KfR6#BE{7t9s5K`ee#gcudKdm$N1h6?M3Nx%qpaNowCBj#LVuH= zmL4p_H6l|4!lah*^ECNkX#?~#)*}4X`?ZMdzPa=AAqV>c7QIppx!3CXCb+j@dgmvT z&>q+y8}kP%XFAT|dHbp(bDv>K!h^%QmmKxOXV{v2MHvwcFT^au#~HpS+(Ya?LiV|R z%&!Z~XLC7b#9y=_7^X7WpX@uF-EgB?zG9W4Ii^{gM&gItZnqu|^V4O3nnm#pjRS2F zPb@};=CWt(7Uq8m5FhAI%4chje8(q!bgD-Zov04G9 zs?u872oqt<>6}?(sJqaW238~6pASFKgUwDN9cSuKJ8#_t`+rK ziUGL14A(Z~>swQFef#QgEE&Z*a6LirUX~E5G13;L73F+4nar)-H*G{WQ8Rs-0|;On z$xW0k;>cygAH({XO!GQFjigYd`mo~T(`DzC$6`YrigpmoeW1%%v36zIX0bL^UnQym zgIlZ{Sfjgf)nMm1@A#^qAAfP4V4|jZ9>`d29IMazYbpQ(9HOE-{CgF7YA}GDVoz>m zZJa~!?GxLpQ@F-u3)PlWnsCfp<(Gg`#iCw5kvUsQxIvp_F8yB8Q0g9o(+>1a^WIH} zcb{z(1lAsy5CJ&e=9|7~zQgWHe;`)~A7qAs0%L#7X}^3rO;^1^f}3zFv;Fkp2{gE& z!Kna7=5oIyt0y!`#Gn(-mootE8HX5`3h3K;w-1PE|9N%662`B~8VaEy4QM=C%Q4Ff zSe4y3JU#e4$2d8KVffo`n&WqHbmR0Cb)&+g)?;Tm4-WOi!meyufyj}0ypaJQRph<0 z$thcdTPrw_+Q|Kqzg}6wK)A7>)O8u-0*M&DF;-8PE{V1(jC4U&rkY^C>H>(~RgrY@ zu)nl{eUoL|+yW{#=V%T2*>fq*4S5;_w#5vDz>bSwiHc_|pf1VwwU|a?go^eZswmG? z88^9DcBFN@5P8(#1tw_8$q8FtfQzj2s|AGSg(b^3mFEhA40t_B*I>{Pi=yc#eAd#^ zkP7_DhJ%`4w}JLsqj-^wJ_sTNCRx32J&ppYx96@-@QYbx8IUC|=prJyMM}Mh#E~+V zblE%h`DZkvV`Q7vON!M4SH+Q)n0EMu1o&k@UBHh3FW9It*% zPGq3+Q23u0U$Xs?$lr;LziHNY;gI6EP^#j`v`G*U=?sj|#ZH*@Vs`-REnr6!=YqX0 z;%b`lR^4KE<1ounI6oMH>P@dalg+l-+7S+|7rT=yz@->nHTlEYnTlH{mvH5k=D1i2 z@!1II{@`R;gH6XRggBe~C4xlXXP@u>LMVGpgF{@{!OSw03wmP=%M;l4t2GsCzKrT; zD6P3!VA<+{tYCCMs%&4-=9=tH9Ga>jPE#e63q5)v^9lSjb^A=PGp6nIt`msBC2%KCDO|Sc@>&9%CzA zJAJwC3<5yrvuzndFoDv6Dh^1#etb;>V@VCN9ei9%t4JW$f!oDf<{S+QEXG1J1MVG_ zb9qOm1iDim%#m9L3+EJ=s+D0X{%i){^O_Eu!%9`zi0~B1J!13n2>UzRH*#Xg zR|4EGGhQX#!r>pb$sbu&4FXwKC?R=7vb=k&;Kx;$kH-hBh!9H3(~CCy!HB>Y>gnSO zCE34@#B*a>NPPMeq4sU`N;ZLlD?sb2gifxCpsl8ooFGx4VaVd3no_`-{GrCWL8GuoxO=j_Zc0jG@P zqz%2JOW{y#FyCmi0y{Q<_v;iIf8qgn4!dAV1fg=i_58jM*nfWHn`Sv~xl{F|e_Ne^ zFLm^g^R#v*{Cqj@O*agGB}T5-Ixzu{WXdjo)D7Nh$814(6eo{K*G=|okRL_Lb6lvF zT5vxue1#vzwaEdpd$V?pZbdpYqoWpv39_$;yIG-?jJ37pn8e+sL?X2ZROrBQ_XO6} z2W`AvjJP4%ZU1K9-)+gBB&!cof`Q<;a4-GSmM8%q*b(_@r#d(-jRkhogCsP8P$PzB z+rm$0Bk=HFqtNP@;mjx7OA$Mn!5Wt4|X?U+V&C)t}N!N6Cg z71G_}xa8HwvE!Cc2cwrxk8eTirj? z)6-5hRMOImw1Rm_t(~l{>C^|lLoFOxppyz#>UpyX)N*__x#q%ph+sh;z44?+oszBg zxCPEG#)0EP(Z4(F5fmUBr`cTHjmbI5=zyu$zQA+*vE3AsPXlYSK&rhTYcAi0t!HFO zys)VwTEkBH?C#Hy%k*YsYfl}U`z&lMVW=N=q-@)!bY-WTvV~y%Z3qZ+A7#EfNA>ip z#cZ7u2YO3Dn|=|AGXhMUQy5d363>POmY#Cj0GdU2sX77i3zT!m6Q-=E-6?}%`~qMw zS%gg5^$`uz_zvfr511GI@o@X7jU=VM=~zJ>uVw4ewPY`MChS|q4#DMcN<7sJ4P&Ln zr#Nf*RIRgoFf&bZebBx9HWr^a-&VFD`nJXs=TQ-)}0P#hFn^ zPcK7Sl=pcoX`=>_Z(u(!R+Bvnvq~H2^g*g&7`}iK$mT-Y3SCV;UjbckN|4am``MrC zeeyN@SOPg!86dAM#RM3)J3IwI3i=>9zgzl{2OqUSJ=HJ|5G7{H^Q^kpPm5qKA~=P6 zwl`wi<}K;Cnj4oj@PXSAeQ&L1y($VS-ck(&6r*Q+(fUHtdouEK$Xrlf(mpIaJzNLL z_e)5&^tF`18)=x3wo#_aK4*i3ld{0<}L{bYKHfSX=-80#aWnei$mzueUARjH&LSJoi$# zb>?BVGQFIq#M(4BxvO!>)JGQgkIiJop@;GpsjA8DSnJMC?r1sg||-I z3T2Qt$)y>ypyimIQ0P)t#Gb4vpq{qNDWJ549g}emFV}q~F5G)FjClwWq9;5X;#PO$ zZ#bc<*fMjoq`Vs9p1S(UZ>*~g9Fc6OKgGVs%M+#=yfLkT=uxhHsWrjr&cDh!QpO_c zZFPQ|F^wMa>cO5Am3ykqcpyB~s1+(9Itpvz@##E70?`-~3)XHF7A;HLsEc#(znJN)9j%(M47Fas)JUGI@#zza({j<<`C0NX-NZ+Dy7r=Y}FHT7w8fxSfE|e-Zv{KN+lg;~LYQJ|x}7&b_r! z5~FCB(_$Tw;+ZR__XG)Sk%MfPT0GUXA20%X*voA6bbv22$Acu-*gC-g`R#fYgtZuY zW+;-IPgT$6n_LXmx~&q%eh8%3=ibyuMm7y`Eh-RLOIvx=tP{`Vm#<{xwl}juQ_za%h;$nJLa4u~bRuO$vv+JWe{VS3Fmub8o?fbXQ5dSlf_K&0gKPdH&M*iQDi{-C! zeHa@4D%U?x;syM}+484V1@Na_tRI^FGr9h7jQo9!{uLzuCvv%18~)Ww^!IW4pV`P_ z1|RvlruHs0qW|H~`Iu(*zXOx)2mp+~jZ5-$idIUNrXSJDhQ9-mS^rS$?+y7+f0M?? zF@H=ZO@cq}1Apl9k6nLC^xt!w|C~5~W(f<33I0C&@BT2-{a3F(b}L$mhzUyRTGRd6 zWI92W57)_uC+Oo%1sA)IfMYRBBdd=l{4q-Ykl?>&?8okZm~K@5=*1sB`+G0`>IRar zH88aOuojX3c`gcqkAP!iQ#*TG7jnLjAZWvn9SRQC))t1}f9Df_BpUycsQVoj$~paat^p2fxw8(PE6ccD#MUq$lR_c@0V8}QbY|jTRBdRU zU9fJrU!Oj{zRtb%Zk_E18CP9=eSKXz+4zc^>EU(z_H=jr_H=%?VcFQ(7~uQ}Y1Y5JgP?i1BMJ|C zue3TE+i&HZ38?4QXl`F}Z+~3bYHB@fBqIQf>N!oJQH(#g9H(J?SNx+t^m7nEZ;qA0z^glO^aKH@cZzm4 z)e{imc60B*NQSt-7;w{W3C`$RWCLNh(5hb*9T8j&lW?Pc{si7}EEF4Hjo2Y>S<$41 z6Az>v1(8M(Ga4gGOa{{Hv`|{U%fpVmEi(fb{Bh~#qzim|$U?9+@*`7KnHm#7J5`Kr zR^2>GfDXtD0cHnl8zP8R7)wnzBveLznP0t8Sjt*J}pN?LMT`$Tvz{rS|Zq;r!Zz9 zpk(DAr$RRR0bY#0o)Lt6Qee>*oT}1xp%Y9a=OlW}j>q;2N`&??rgoJ)6d}>H^fqKL z^flzj#ZSDcfIr1EoT_DZ zyNXt4m!ugnGDF<(SmbXqKVhmrnog_xrW2<7Q|C>Zf<^nYJtU#d04p1Ov;hxn({)Al zdbzQGrM@vi2^5y7Ksr>MU^UZLHMh|xFy4wEV#tP?m@iy`(?;Q}w=}2rP(%YXEz&2K z9Os;(>Jj@Mn~gRPNqBU<=Q5h34IHwl>OLXc_2OL476s@w=eH@Z(Y zt)z7lo*M;PcTKgP1`Fq7RSHLr!y3Gna0JO?UZ%6ND0SROp))+(=e@6DwFxG?8K=^o>+Op)t*DZjKGjS`zheVHGXU zyKKzp_m5;^NUI|49s{h)_F^kCqrKiM$0BGUg!=0rJHlBDHPVeh9hFj?5tp911Uk`6 zHLhP*k2kU8a7&{H`e8N{4zOt$)Y@@oB-?xqjKXmW$T8+R5(1IM2w8h?J4rpCv!VB# zk<(or?ExE~?fbxd-G{)H;of>7xM5n}LL~?N!ea6H%jR)WbdfYO?Va5W$#MIM?)l(t zE?C;uaEu#g4sc#w=c>B4fd(MVIrlI@{p!{V{76fk)(ZD$bvDs>dB!mJ)J2`u5CysmlUu5k3w zg}U?B`%5^(6=pc3ZytId2c%B=1-ea!AJ@7#5Y^yxg-X_s66Mx2riKc9g(6QA}IS!&qr$Pn83ZpM!sa%y*mvGbd&TXZHb&ls7=nfm`sh$0s8r;RT*9 zwSQATe6Doj9Y5;T{$ymxR(S2@Mfik(|LCd|N`p-lh|64kk1$}=szs!`*(m_>fI1=i zym@Scy^ApAPs!(edj~7vBb7hovwg;>U zt=&_NN1HPZ24^@tLdD4~Q29r%ODA`r@9u<+2$tr|UxuyqZ1&B>8{VcRy%-si1|fML zCK z-!Lg>dJsJv+hTRgw@5WO>|~?BLvX^m6n!3?4%+GrtDEf7%ti!$A)nP z(y6Zm&121RBv7yJm+YIp07JtIt8l zlO7%&pFwZTH9=R|J*_}*1cze~Ymz@GVWzS4>Eh9oMRf~#EvdT-on$<=ni-hd@}HWL z2?{+V<5!!MgOwXJA#tciwCvC2I$(EWg^)j8#5KYPycK}rT4_WD>bH}agPnTWf^5d9 zy5{dvh0-7Du1!m=)B2g`mBQ_P-IKv$Z{sWr_5R|yP_|)T#Lr&DTE3S+;UC; zxLaB00Bi`{7+|rB)fz*XmDUM|^jVAEmj}7@7F`+@FCQXLa4y*7mw~rW&XKGQ@FqRJ zzbItL9gW5n=Ir;9Wl8%{-qd`MWmh5rogoI^H5(ENMK@7Qwe<&wBEt_U+sE>qEgHgE z;wD(=4=~c;#K(jy#JUXFPpvSa#FV?o78bbbL*}Id{Z8tXdbq|%iCk=DA{W*Dz6Xs) z;pM@rG8D&d_JU||VH2AB3k}-r)-vh}`={~J2r!4#GRo}^EG&ui=haNabLM8uKq$CS z$M#gFXVxM!C1u4MvXMzHi8{`RtCr=XAGZ)GZg->w^UKYeqKp!^qB7H4fYv)V&)A3F z^nZRzE9kCRum5i+4oT(W> z4#UeUhL;F-iW#g#P!ug$- zlknytn4c;oNYNbGvDi7X2pP_tNn?13H~Q%?%l<}?no(h~trjy2$@3a4&f=JycgeVl zzILwzHSJ?S5ZT<&;w?yh;u&W&0-xa_wn*Zk1!5n&KLqL7V%Fdf)xjcqRcH;TfA2G% zCshU&$SAaKfsP^6#^G$WM!1rAV_4mks{}jIUYOvKiexkQBaypG$?xlci7g}cPm%T} z5a?)>ht#{@TO~-ky6=&jTm{LHx3#=?G$(t;;e8HayZJ+7(!T*8BuE#Ezrk;kG#uDLH8_A z?f#=&n1hDqRm{3HHscm8h#~)C>Vl$;O_p@)*@(9%$5(iNW+Oa5=jsca z9?8qE$7;@}EovTjBX;H}6HgX=aE%nz9lL=1n#?OCgYao3E1}_pf@z0;nIo`~nE9i) z`e0ltphxqWY-g)t9QCtu=s+YWu45e9b3>02vIon>g8;m1I|ZVhIa)OSHj#5-IS?#T zbL=pY!TU=Q?%30<{R#SG+`q|A4`N;ly>XvJNumZ#vB#wrhBD^muFZGjexbdLPU9

T?sW51w4Ize%fjw3?3`hgy^z&tMJq|%d4$wZ+Lz~ zBG`>fhnC8LN!df z04*UU>wj#tTGnLe!koFGSj9C`=n9;_w8YFNvix{^Q{BK0!rT=C@Uhwwb_<9l`_muK zQp!~2He}dS+C-|s?;vDbta8W_AA0b}4$%My3;86fGkrhS0kdN!%A=I7xKaLh1pCsM zGbTkJ<;N@?fU1t6eGb+ry!EpWlvtP>0ghrrkU#dCPxFQ5DWZeNQIIo5i(t28MOik- zNw`b-HF|Vc0AQXNjLAakUluMYV^jHTbjy+#1e%ZBb~7hUQ;g+i&6rQr-e)CmO;T|b z-=J7>s6gkYE${#+datZ-VV3~*5e=#o2BhD->VRO#EZHbf^AEt_qs1JQ?6i%7I&`$A zlC}S}Qd&SrQKEhN0>?(HnEAhK^|SvUN%;SNw)#2$zgzu11`cjpTq&PdbYHN6>r3(} zg>Vpiazzyro?L!j9=Ck>tJ_iL=d#J8jkb*A=_7tKhL=G`93mLV5F}u|`lV!Uks^mc z$>Q4raMzhUL4f0qpF`QqQ@uEU&*jHcCR;!oeFw`bJRCasKBZm*2;ocFG# zeBpndq4l4a-mk|m&MwJDa&? ziplS+m!blXte)OC3n@9L9x7@}P95;J)PJ|5IO|!X6tmY#cI2VK|N>W^LT^yOcC z^9LQX{4?NOvL+af@%Kt|EbPna>L~YO^t}$DGTdSPD&R@s$!Ij{U*WnSf*K;@Q`Cgr zZ6obnWKM(3Rg>HL0w6)wkFw35f|oyf28+ym)&H(O4um3r0NeXvuRfp z(uE2(lzXX=OZSA&dDO=(Fg0Ht`E+4ozO;EJXF)^5SKado!5=t^^Ys~^iHouT2Wv8| zt*aodSpDPsL;M9%5Y94#6Jl}E+vk4gpSL&yvvNV6U^Gv9CZWDzKNlBxoU?R20a6V^ zjk1?>lf5^QA-PGk&oaN z{h&=aJthi~!h~peO>A0$8T}{1bfQxJ$8*Md?h`$|IvOiaywI<(V(Ttx>hJ^Bm&I@j z-B%Y~B3V-bbtI96c0rE4D&$#Oc8d0{x7wszumMNk{2ojkCkUe0(h)zJ6-ll~A5x0cn7 z*y#uovbDqicnJ9;;t>05KnK}Lp^HDQX$TVuT~gQd+48Ei*M5RRG}VrqZ*v@5v}^Gj zOgR;zmxTbDHB98D9?Q*WKNr@as@kD*ScarVZN+kIxX_1)C#h7E>9|Zt63j7+dv$lk zR3Ou%8of~;51IwiM!c;Vk+}xNJR}4jEx@lrsuZUDo8Y2J`F1LQgRhX0fHP)bpp}=& zKvC4;hlVv{vHR+k>-J)WH6NAzMUUeFOUTs5SjB2roEw6_sB|z{2UI{aY8x*8{tA9a zVqH5IGI|JONC=9DIj8u7+pr@2VreM3MJ={v`?_&g3l8#DXw!8k9u_0m_7Qb|-fu4A zkBhm|fM#`+bYK0(y-%#|?_V*p0resU7sT-;ExvJ!8qbj)lo`+x5_JZ{fLeHfCTLJ* z*67DI<_`6kIPFeRwQ0eJCdejOlk?e5id{Yz7I7f3hXBJHQ|G>}Tmzz;0!%17 zy`=v_8$J|IPBva~qmLc-)ohePBGk-RSvPQf%2bG*k)^ab+?c zI0iZxu>#qGu_pyYe>^3+B(=j{c9{PpJLXK-oAO2?o*PkG9L=)t4DRr6I0_R9Y!m5( zCk3&b7Hx6mehY?yN*jzgIIyXOL^BHA-bn-8bfp;sC}BKfuh$G33}%aHU)&- zPt+ypUp5%%5X5q17$$TWAtsV3a80RP&eK17|7O9DiUiO&jK=fAOjOg=XC%WhnkZm| zl#aYptypqmpsPBQ#yH!=$_(iwiOWMyS(cGubQQ=+$b0s~R7M+L4}q?iFICYaJ7X9I z2z(bA$V&dIVu$>uXoS<}%#~=bB{D@9TCByc@_^K=QRGa{{hbZf50{6bYtmyV^}4-i-I&z5u|}ku^r>8vLx&hKBQ$5?g_Qo${D z?6Ga^FL8hpKZ9A?=){XpdWjD=_`710TOS-TNETrmV4EEY=UB2zk~^g+LR~f`DdK7` zoQA7#W+{4i(uz=bm+8@K7Q@tN=Q<04-~}#fPQA)g0Seb$V?~j*ZK(-9?+==n6M6r^ z=BX~TYp1EWm~sTMa>BYVCS!jShILOEZ~vPE1?RNKITGnFh|(KcwcF2frvUzs;M)KW zmA(QZzBdtx;eE6Ilv-IS@lDDc|L6Pq?1lcW05x$c5*;r$Lb|B~96Rv{8N<$FVbNM% zHd#71`M*C`IqwZoxIDbyupD-pg^J&cjGtMGR^6*3AVF>t1p_71$7N%mj?jiu^8&2$`7PrqI`a*8&-UH!UpsQZyKaFHPgW*DHfaELjgTASFFsx(`wWMB?`2 z_?vw$UmE}aJkkp;vO0kfMq=52=*f?*znd|XyAh?b|DWhxunAHAV;BNrNMI~i9s$|p zRzCRSKZal+hOi)p&U+w+1phJQnM2mzC)vj>z$qt0F--(#lO+}7CMVd7MH~#lZc*Ur zyK52qAmt+nzmbT7`PZfgta_Tj0#IiksAabNx?>Op2pknb9hkZxyf>DaW24b z82B+D!w!-F!4QDMtaQm#ti=N|eFMHcqnpQ}#Y~ZzRkbfG9!~{LOCJ}yrNW_zBwcu7 zKCrZCZ^@d>BWLk09WTzMZ&lqIp#K@ z%8`xt31uyzYVhHSdmqct&~$9HxJs3La+a}*%BhN_ch9HMvDqj1|6%MLV?^nKbv?Fi z+qP}nwr$(CZF`Srk8RtwvCn+>=S@y>{&c#Mm6bGBb@h6y>UkS&E+Q%Z$s{2XtZ@cs zseK5`P#^+t;R3N(l3DwE4G}i#vI7Xqe=GEzrfn@y3^oFsMV8ZXf6xN%G8Kuvword6 zlPWfBs!WP>Ec0I6a@I5Jx+F*UbxNB5fvJ~upD;x@FlcO)(+z`vf zfC>)N=0b&6D4!7(n{}?-xOg>C>2WlO9iy|vf0&r<@G}^__=8)S@rd41w;!%!9;2h< zIG|E9Y{QId{9c!AfgFs$Mxgj@rvgfTn;0LL}7u~5so#0*7Hq?v+pNHe8`K4l_Xc~`h32Fpuxn*ucqGku$&GJ`GRQ* z=_+6h2G8g247TJw2(3B?v0lD;H-{M9E$hF)bS`?*{-!TM{(Zrid>xHTP7O&*?}m($ zDl3pTudQb}h-s-4BG5p6?O*z4I6_M`Va0F|;g;phH5fXRTFo+V3C-~!b*DFm<|Ic^ z7BHZeaZfjdA*DJqxGkYsiFR=kx7&qg4IqeR(a7Tj$QQ zu4HKLuFnpBh4*2`O?HNFWsTtG?ZatFpD?6{!`ul}hkIDdr}Ff&a+(!5v{u#gxw{58 zVcOJA^6El%13-mOwTya1vyMJwe7aYezY0|;Xd|W*N_Wr8jQW_`nyn4a_Quf|>D~D^ zt?ki-H@MChFH0GVKt8}ymX%;j1;l8D&|`q6DVVSoMMyb4_zJeW8N7KNvXliE2z+9y z+}g^o4oHa^m~MWsc>Y_ff3(*pZwveA_o2f6B9175>GOIcZ2Nyp`nXevV{dhAA{Q}{ z$Me-^fVX(lt$|@5qLiMaBnaj^K)HHPP__W%D^rjj=dO?n?t(*#Auf_mL>(I`Dnvou z$&id^&XUsTkybm&FV8G&ogKA0Mi>Y#KM4U_hos!ZUn7cwyXmlWG7|LI4 zi-TbXNeW_%TOF+3t;F0{-~>KcLz6BPsHoOeXnM{LQiXA4DQ)xo3)3Z-eJ8Bh%eL!^ z+?Z7okD$RP{FT_!l0VSwOHGcA8Q)b<;&uF%G3i;Ez2U!;tc1#;x2+SkF;wFUniSso zbx(4``((0r0kS2qc;KMW4Ht$zFSiVNTypeYoWo9?YdA0h)4&hH4c*@<@aSY+YX zp|S1lnd_V$$c90oN(dgcyz~z;Ifx&Lf%6J6?Ev^odUce5g5uj>Nu5;wy6gvX=FwHY z$^Vkl3m;O?>~4Dbc)Qo6BEn4yqm5z0UtL&i!EK|~KJ-zK+E3WP#@+D{%Oe`=Je~Z$ z)WvA%*gJDGw%<#}wku#skjF11KA($1Scm&sx=6}yPOwN!6lZJ7 zSwcg%cwQYS;VVlcoY`ABKvq^V18G8Of~Hf^46}fJlQj)%3O4O^$w?}k*3>iHT&d&4 z#@P7_v=s}g%{3i8RIxC}T!y)#QD@|yBrVB}^fzDk_fNSBaAL%sMBUK12_3beQD1ox z)#vs#?ld9w=fy||6op@?gi9RFc4vwOPySweSwDSMev+UCNpBD5IW zO_-y{;er`Y{q?SWR=vNL&%dy#L>LRMDG8qA@V=e!Fz_3=l+mQBRo)(t|Fu0#rrMs_ zzV4u<#y;H9mAS*t6-NOu~BBXu`VCLqc8+ zTB_W-i_MC@0m~l&!MHaYLO#!vbST6PIX`)eTCkWXHsGr&_@$zHd_hZSxX0Tk&GFq> zag?1Wbo=YA3fPsCDCU7So!>~LfBqE2I-6ufz*))ixh6c2HcE<}O*Y38Psl1mnijtzLu zExnC#niE~eG+OdnU^uhhNqcWU9@M=8*&E+4)3*s6-v&2^u3xp!O7j>cc3$v(zb%@v zWpB;dq50|08|L4o8v^3jX0PEEP#7w%PJF)H{De{Pf}63UFndzR?V;a;A(e-k&is@N zoiwZ%e*jl2FAv*GP?gtIv<$ieTF6l{%nl$z;Se5~+y?q@J9_;cqqP zA<;fIwTzf8%OAH>Z4gBL-7xLAZA+fmK0M!FT!suP+RE@ruvXg*t|zV8gO$|gDKg8L z@n}MOH5-%`%K;M3-4d(OCy1w_VWN>AnMD8hJx>F5tkvyxkIQQV-Q#gy3Ll*w*(zznR z!ToU1ard$m9L7R)-+g_6*wk)iE|Uu#h-AnWl;gPmji6@3WbPX*Fw= zXf0xLp6`*`DC>5vxfwsUTDE!vMCD%@#vKT59W4sw?RQKhXwtcc&sMlWK0sn3!Hor2Kz1_Ybg zx^<)o%jgfmxAJ1*@4AU=$%u>;tEApUnn-)GQbP~eFw2}5Ay%VwS>w*|K#{qVvMvhj z5~gB0)?^T>;Oy4d<peh?p@p=3`!WG?A(y>{j4I+_F7|R!s^cLHamTmA zSR64D$h?E(h-r+B20 zXIw6|IIXPW(S#sT&!d@<@~z^#k2ns-*sZk#|`BPx1~Y8^`}+{r-Z0O$}{fp*(V?b+w(hI}-i= zYp3ZcbxwjNt0R%1DX!XPo-?gB!Yygm43DQSMU3m6(n=zp#GH4Pug^k9(mxW*@wAjS zxiC*ihmU1YJimSB_wjYJf3f{OJan_(Tt17BH$(5oqjR&v^L_JjxLLmY{dIr$wE6g| z&VCB7-p(%n@8LWg{Ow{F{xm)OPjmBjbiLk5}SX26a{$FR)u z{GM8E@INxLt~biAx6RxiqSGL|K5q`DA&uv~goVGXs)9CWZ!YciZt}z=9u8ji_g}c= zQq|kr;UlPwnP2!+-{PXfV6cX=lhgawqmy^9I{!LKy^TNG_om{njoZ8X^MFfj^~b;F z?^Qp(hHrEFDD3JE#&5UZy>8QfrGyY)kLS_|%Ga6xa%(Tdc-MWMt*a9B7Si&4*1p|d zSBJKLTsS(@e;eDZ<-aIKEf(5_&HTr$rRHr4qnG;S*8UNl{G-g7*#ybT+84WQY`Y1u zzr2|Io{tW1Rl$Fz`d9wOO#pra3B%gPvZ2ntixKV}KOX;Eay5YR8d!Nkgn3RuwYA7i zzAv=(X?l|1r`38I$TGXm_@UgQ@{1GZ`$n!8*~xWcM3g$6YTNZr3~>SB{p#**{*OMt zp9z}dQ|HAE{-hg(eT0M5&uhIqds9tt6o!fuMVk^eb*PqmwW2cZ+F^j#5(>_d^guW% zD5zz&p0a{tIJ?uwNAhd~9sWy$)p0m>c!NJwzajPjX26hvM8ElmUTt&utvr*)o0x`J zr@{s(+8dr)^v{#|FfV<8K)W|V(w9RYcvC5&8#WrU3yL<3lO7XM1}ELigEdeTs-ipdQbW#cJ+s$ z&>yl`_cbVb@@a|(k7I2j#awBR)w_LTu$>On?q6`ax6%2FqTd?`{!vRgVUinl%+Oj3 zsPd0Jr+^8y0I~g9hJS1@!IfA+l>`O~$I99qpc_Y(|C%nzKMb%!{A@uF(5^hzzt#d$ z{?*YKC|PP3<3{DIvQwZ1kyCyWb8t)WMTLuKGMiyzJ$9VfO#o?m?{)a2VV=tONFkV{ zdp=vpP7jZIQa(wMuH@+LcgPu=-$QvZ{b*dBMaK_*2@l(}Da!h+S(kw>yj->0SCoNS z+eHW8a!}=`S{%#M_bd=>38PLzKbUsmnt2#9^y+?vxSo8VyPpnwic zhWW_Of}zFVhAMArPfa`$EH-DMne-Y3{(Q|sWupTnW#q8=_gV$J${MfC(bJZFlmNCb zrk~Ctbftq!npUw%HQ-Swl7q^s9^9#-szPSyMNOE1*}}*6Q}@$VZ=qu^)Z_^ABcl|U zJ3ZVYW9m9M5KD1^fWVZigu(1bzXb9b%ZYK0xM;~$&=bzrC>drmY{ukX8*r`#VO8GP z=>WC3M;xsCC>pY!Ef4U8(#8QY|H!O=vGeI-G*fkRmYBluWuh)_!O1NQfY{h4zk?m3- zWuzHPVBLtl;V2>$|RW#bbmA zENmE^406rI!7&X>!PZSt1YQ}PAs8k{0~a+GIgB86dzdEkbC@P3uUk19X4}TXIZ^4& zDg_^?TvBQ&bVfueG&Q8M5V0BmYa42zq6|O>p`6`#ckXpnG*GTKUn%r{Ck-L2mzGcz z7Bt`<%QtDvCu__PlwGpayeV^I1%nmld{nP1>%Q7e$J}Ht03AESi#G~Vr(*)s2G;w; z@sED*A2#rvVval3)l~vLr84t^rOpnxV?aNEZEpqkhetMmb(I6JRUcGkND{(c6v5{m zTvrL~N+k}qqFt>?-kSh+oE-@^^5{VZwq)HCK}hFTD@qK3B`jwum&n(KjfyBUm8v(( zaR9?Yx34&**p#~GjEkK-bc|5bya-vh0tF&| z0@-CYV#^I$hk9It;t8sLG`yMaYPSE^c~nO{d6?P_SrV&^ z!2YlR20yupdZ)1qLjqqvxHr>o^f*FE5Y0$#bywT*C)HQ2FLhf@XKR8BPckV;tUfe$ z8}A5)*qFjF_=LfJ_!ZMK70i-%xq{dngRop==B({tuxeM&ts^mG-gY>rHe)}4TWaEr z?QlVCLPLp`ds(|tm)c~{Qk&S=MY~ax+L(mgDmCJFsBUdUqgPeiL7CbhM313VzlRcm z{!{k&s95h$ zmRr&JD9u)?R=FQ_m@O+hriXN{av;W<{qREO)}yH3ptF)eAF90h^%{)vFmxyCXhIl`-uQgpE5qKx#Lk+RGH=1Z}0<5nP383;C`($c4VFjD5WnB8=CE#Z*@U zMm~y>RO@nfP|hJM$SJe3$$Eqx_4Jf_sHPRi}>KbKOwPRkignDv)J* z^4qe>an)n+(O9pc0cKCGR3%Wnufi_$I@%jO`jjAd5c~|3&`Efe6KTzr4u*{!9c77{$s>OW@<*gm(Nx|%1d$OlJ zR(lVnU-fDA8wKE2>u3LLK2E69(Lv0#Z-}HP56Lb-I@#!OH;8*JFV-)45yh`4Yyrwr z!VSeW`%~(V?=B+LkzSea=;a>@;gi1nkBx`~ddWXP!139x(%OK}J{8)pAmpOB31Ld| z`gxwO*Dc{~QgRfD{M)atS{D1n-=lkZxJmDP#b*jM*z*$6{FJ}5{e9gg_FpHN+0qYY zXXP>%F;2}*Tz+o6-t#ljz~1}9(Ns9Adc8}vnq&P;r69M1Jj$#kV7gd=bz7-smeg}S zSuA*Fkb$?-7!I%UCY9)2+*RN!FJ~dx0SY&FFe7Sh!Kpsy5wvvmgs}1|`MlF%=qzHV zl3b}cs@%m_1IaKri3dryorSB^&3(#Ja6>~`F|1(h3Q4i-CuE?V0(AbhGG3zj?5kD0 zmR`oI+J|Cx*e%{K|$$3g=eiBuli&ZhHx<;tT>e-!h zwRsd4jRsHfg_%J-Eyz90XZtG9``Pq402h6Oj5_O6rTEH zT0HI2P{PH{&hzce<^g63Q#WEo_vGmoUFieN=ej`1@aDl7V0`reGr6e~Ew8^fId%5E zs|K9BPemZ*M`C4;fZ13E03-bsJ5{cFSqT>1XqgnsVOd)Q+peuZCN@EdGtj15kAd3L zczV(CYD(ETJI3mCA=91aCFW6wd~>05Lch|i5M8vc8wK{>QhL7q^0Rv#snzUwOq!)X z*Q^Z>)xNekoJ|0@m%j8SPB3k>9lgXh!(6Ewbj^oaZHG@Vtq1anxo1)Rgb&qx@Qgy@ z3f-AcDOuDQJ~RnRE&y2Er3#drpx;|TxY5^ION}4Yk7!anVfLO6Q+Dj^2&j6}5aMx+FN z&&A{skPcDrplU$KC`Au@aVO((mzN`RB<$X7;Wl5vU&O~d4Q7&}tNoS~KZ{UJATU>V zXl+1jp0izcuVAH%VwKk4&sLa|Pb2kRIqQrJSh(hw0F9{u zBa6`%Cx+I3Lr=Wtq!HJc+Vv?X6~&xyi{!3XWq%uT+_fIePH0Rq6_)UHAz`+JG6ecl zOigfH4gS?e3Yvl{I1(8h?MPh`vc2nI@?m@Jx~KV3yU=BpNg>X!!!0>TZc2DwW)}&(l?r&_$`sc`h;-?sxy8 zHQU&b;)$PqD+Mtk3OF>DwJaMyqLNXDAsqJXa$RGJdl$D8TFq%=W%DO5UUcNok?Yc) zZV;UZ2N4huCC&UXoVfS`NKrG=mNk)?rLTN<;sNFjrN^COp>(_09Q8Xf_X@ZZvBHVt;0Yf)0&7J!5oB;zFww{{OKl62ZBfc+&cG!0B19P;^-LjNc^Kz&eb~8h z#>AT3LCKt`Qb`7QRZ5VaxN@c?3*)m%m4tz!i{UL09Y;;ebq{n-SfV?iycaqLEAtL$ z$#t$GukY|+<`kFYzN9gIWNn+2CtdR@!>N6WBj6m8gMEU5r*O805FMZ+e)owxhvqLu zap`Nm^6um)`@5278mI1g;7hJjeW(@E*rDvzN_|$9!Ko&bBV8v-s1IJoFua^$jcm%i zV&G~jYRt=2c+qtf&Y$t1Q z2c;Y0u^I-`u9{H5VtvjU!PVg-HP+t2y6=5n+fS5G3PR3Li4zFLFiW_bNe*(LQj`i1%RGXnA1WSLD1lpnR$?cZB^xwT7E!$V1z8A~DLk$_(KmmH z0m4meuO`@fXTDhcfDuNRU#=n`2drqpuP8#WuoBf>%mL~s2eAVsw`N7EAF>qR=mB{6 zGfml3AT@ah0%x$>18w|N>Yuy+Gad?lGaZ*%v0A2x*`Z+MIg`gCL6IL7re=Qw1fHKw zf3f#U8+`^N=>~K)^kG47uhnfx?;fJCA?-9JCV>z~*{322ge!^XIt36e?ZO|Lhqk3) zh?Dt4;+j*^2&2BF3%^hZ*xsr7lB|P=J>ft4MplFxSdcCz$vVPj<-F%DuL@HFDx2JY z(a$ygG7QaTeN-_`3p^WQa$=ko(7JWfGdw%h&5T-ERnYN?H1LrJ3uSF zO%S|gO(;lws%6{UCai=55rOp38aHfmuj&wNIW}>XpV2I!7q@X28%dHS+;OBm-2Wai z6zVwMAK{3uImjC`M+nG2OWv9Rx+f~FKgUHvC~CvU$4_v+q7#s;wPM0QnH&&H645xl z+QJkhV|QXa2*cho1osWKfWSS@fYq#&I*8ud)WimYZ+CTZBi zMXh-)mPB#2bIdZ&(AMA!7Bf=Qc0|yU<`_w55EW#UbJWW<} z$lCMWkM#i!n)Bm=p-LD>3jLG+^RYi#ogpv#Jmw0)%k#Ddc^eU@g2TI|Ja4@}>J~KJ zX@0*d#4iW&@f(Pt){b&I&iS2>_kRGQ%rd$fT{IFEd*uXi05@#4kKQhCNz0sOP$3bp zKx^A*vIEqw?F{u>Vr1HiF4$ZyO=a4a=h#v<(?%>Hcmko(mD(X`n6}39!MTLPNVPR} zqKoz93<>DX3>25LU{Vf@FDbyApq%x>}zD%PO~F}JH0&r6ClJ$;t&0>_MNh{Ai= zr*8?qSDg|VOBSFtwGpY)aOdpQ;sIwQLhnorQb2>4yH|&mDO)WifLqd9Gmd?i7Lo+) z7i}5DHUIgYOOv;$*>xYxuY=yGjH6VWRU)^r)og>!_>Am8Buzo?Cz)#%C}*S=>w$qv z)d226YZoYIwHB=~5-3qr<4`BSxlgs&gqLEtnWA|Il%rLfm833}hErl4{qOX%*#L^? z&c2C#)dvD1QZf+EWxsW~L;!Gl@m9iMjTb8uHDBl1L(6vY*_d-JgQe--B zjUWLVwu2AF_~m3ib_8tuUMY(7ET^6`(6yk<5zj)>avW&A1ve(XddYD?ttd81q%}oN z@RDT$^q%R=vT(-G@=3;sly|}uM zLz;>Z!wD^XcSy&hL3(Fm-a*fVvoAuL$^i)?Gb>+mh@^-`3slZj8M?-pT2f`i)`*}8 zEhzdhf3T`o{30eV7n zarQuV0x1N!rD8&NgbyK(QNEMw%gc};gX7R{#{Qe!r)7LW*2$S^&4>%N3t1E|NaQJ! z7^_9YjDpS0GpK8t=aMkW-yx+2{kPCl7Qkqo z>ucy_eZB|-tWvyDpvdpGe5b)?O68szTKe!x3Le9Dl$-ANwn}IsV7AmZ3xdttzAWw} z*ti**7J60a5D}telpYE~)+!6aJ9aP4iM8DN^&;GS7BNJ=GHH{ywJn(-;q!Z~Xsvh| zD>*=8rAuQr)(MS8IMRUL$ z;<1cu$a8!deXkD3>7y^6^30MFOiRUxa75`&g-p`}S`n9IgLbl?#K98NH=OLliJcF* z{3ykEP33GtIYAfjUq+L=b@Rm;TtGVQ0o8&UxSEe2axs(|GMQtldrElt_7Q; zygq@6DCCI97!(Vr-roJ>(5c8 z0zQn~`nU|%r^0(tY5DlaP-O(pRg0u2$ET@|X4zh4rYaNN_DijF;Gor*ib4$wDbZea z9J9_~M{T)59_OYTuJfg#tPKi(=oA1j664~K6&C!7Wcq=EC%N%&_(Yj0f5ilFNC>x$ zOBfCHTee%JisuHB7e!%cQP&a%s3rNAqgeRG4-1>Ptp|o{+@mk!a;}T#i#Jxa+`wng zx*vp^#pTN2F0M$X?WXIEoO#(s!UC-Z^T{j8Tz9d_J0*N6^_&S`QnB&zZvGboyRMc# z@NFY&aW>hVlAes&W3BSXX#6Sb_Y9p|LOrz>LnkJW9g-ETqihqnN)D0=RrsT)w0=2boHNkY__`ju8snaQgjJH!LwV z2gVCjH%n6*!{;e9M5d_Z4*lncou~)1zUP9e*@L!aPSkUhr@;UD7^k7+wlf*~>iXGQ zfslYL^-67zOa!R9o(2*tfZ<9)s{QN&lpTa9n_84p|BBFpTU8^7#oS?kOQ~akLS`vi z0=c1pCDgj6PY0A!_X^Qs+4*%*w24~y$K5?-1PdgA{~R14`mp6En>Q z>gx^^bDs*(HN}P~b3iQao2p4~6m!oCQA)760#n5km`;>(*9y^+TOPAaEsWs^*iI9L z_ju&6Eg49RXu3qSmK-yrUxPAOVv){n%oR!mrV~%s;RRxF+czr?_B;yyqU5&lu|GD- zMCapz4ph1FuS5H4_@%FT6Ws3gbZ)G>9h)AiO3zqwI~MLf4w9#_i@W6Wa7RZ!$8d!& z1G^~STFE`zck_ciU!U^M+^hP(r0bb>_MDP5Z20(>4X41c_AyZhDml1(a@|)KK;)F^ zax(%e=r-c}Br@%M>r@79MMJ4M&o=_{Ozv@cQumVDt_K`wc%IT7y{<_AjqDiBbma(x zf+t@YT+M$;68Cyg>lqfB^T9^rFo6_Pu+yp+?wu^^&+(v*Nk70)1j)1TN;;BC9#{oL zqW~|he1+PoLe}wL4l(w95Aq+wQm~s;@U0(Tp&x6XxG@-w4=NFCGe%OO8DzOM#9~5p5xZr$F?Dw3*num(pBpwX~U5r!1w* zme46}$00_!>RJh7SZzGR34VCy3~wt0E1WJVyKn?3xj+QkmGz|0*c)_3mk3m91K$7* zq*y#{b>;Xw=5w0BeWGT-Qw?NCB;g$h{|HzWOF@*_60XvO-O+#t5^{E90hO#y%V(n( z$c$&|kHg!dktYdRIbLX}XQ-H~^)+&z2-{&uWK`mWLE5z7jM&X!bxj5fN|kCch&=~d zd>FVg;`3Y|?RIa%MaML9&PjBtKzpeW@(bO<)Ql@@q&NT*hl8KTQ{87!2%_46gh$kc z79eY+O%<;gq3Q}1a;Uh_@?9V0A2VJOHz?sqb)g;h3s{XAO)1+}PY1#(bt8L43#|l%xypFPYSq!f z(yKsN6i0702JOlsmI%Zfhz9~`nvjku<{>>#7c_~!vM;;zgt&(mbFLb-4p#@XB+hxn z>AJlvO^iYbsj-fCCt4s{EHl%ZGAwEMc_1-eC)lJ_30oQt5vLQ46=T&I8Kw))a3*=? z>D&KGdX)BR^j&oGDAD!OmysBS6o?V4u?IN!JjHaubjUSF`^h8UB6Ty~S<_FKP1z|e z!6|)&qGxLAz(37=8d9{4bw(L0s2zhI{nPztV{Ls?eWHfs)QwV>LB@@zkZp@$fffeh zjPVrIxP}``tpNj7N#V~FuqFZy3KmnxD8eDEKuehHheRQ{a6Gz@aMQJY0k>B~>B=~$ zTuHn2{*WE-sfzqsTCSuch(0XM2+cxFaALaA;s8lezAjPhw5F=nUUW)?hXixaOigHC zy*V*4hr;;e#D6@X$GZ`c+nAVs?+CZU)bXLo(N+#FDe>v#+?5CW!LgcuGzA~zg1(f} z-+iC>WR!Ubp`@a$JSD8?SPedt-|r`GEP0PvR93J1 zeo+UoaDj~E6G%LTlcfz3U{MU7?b7vpICTHoT>DUxddNO`ef&7K_Vx}(=XZ6y`<)$N z41;kcXQ)=WZX~7~onU^rw* z@9XJp{T5#?-oL}^`Q&@~J3IR|{@?xmsrTEWe@>lVj$J+Te=w{ar{v4k6{B(Eq@eX=8@ER6IqrXVs;R5IX zb5lKZ2q4|t-PzaYiGDJ{&d&ZCLEV(NokacB{}~1YHuM->&&U0Oo{!r(=qUL%jK2F_ z;AepD&-Jy6>TtmO^?31%i@sPscL3!->+1>dhvV9_yf-a^Y>5f05WMEh<_~VD($!UTB7^ zPKQdfWR^qoviL)He)Gegz7KerGyQvdSB1aVYl!?Dy#f5@()u+tE4b%bg~AB`UG4|> zWwIMcanGhS^s`$gHfY(;5QwQE(@gS=rv-GdbMZNt_(3x8Gkwc0Z z;8qpB*!&C~Uln8@A1);Gb$yFcBKj)(-6pq&6u#A=8LlPR?2?NTv($Lu18m-XJnBECaQ>m)a8v?#POn_l0LwOrATC zo=$F4}?>~CXRIf@x-;p$5=>g=Ie0~7W14&2Z_jw6J{L{ic2 zG!)0k*Um5%a=;5W;i`bF)?y%(R$SFgB1=?f%Lt=|Fe!y6E%p&BX9}_x1w`2O2GU3$ zXeme|TQOOuO)Q0UAKHRTIZ)eY=)g(|=oX};3ktI zNXQdR3(}_)p981yzw>;TPf3oo%&l`!)6B~-XpAn%tvOI(0A*POlY}C$C!MQ>G$W|w6aj{Ze(i%L}aEsXbj@TGhH2UqNK2O7KgIA#v@WM* zu^4X;Yjk8wv1&1vey|;WiWZq#GIg<-UiW8#-t7f8Q+F_S0qEUDSd7I!kcD9JSVAU! z09Cba5e-@+h=x<2ijWp7DfNyDd)g9?vfB>qOlQbssq;APzfw$}UvP%F&q&gR4<%N+ z9_@L)B=;_Lpswg!=M~AwKu2@~NT%demgEO>Q&Ani^mrJYl)=l=7jTLG594X$)yOE; zXM+s^mp3S*%05ybicBF(wK_i(( zoyQ3Hecfg1Ik0oRIf}23>YpTtwHy&d6<|`7-Xm&igZ`2i0@OQCaF5W6#2Yh#Qg(zyv2iw>l*Jw6NbJ7m9Enbx# zRz1<9GtHCx>MMmHvYf-pH`mA~yQ_vqlrA$$4(9oaZ*on}ch&bZzD0^nZ-a1!f;2SaE=;^O??5o5z2-3P zNI~g>u@_`}K3&3|kj`{~K>VvPmLB$iH|ASh-C91fx5qEa`~11HqR1U8J6{qqi@Szwmwg`o?ez&0s4%h`+D zIAfE&S>X=F{*eZ*(mO!kRju2Kx(NHc9Ew84>W|oo3u_nlZI^bq`+~5o$2z1JgH`B* zp$nLlD5|Lq*xg0%Ac5#IBiz~rOfz88rF*bz(B6YP@0!TuuHFshe(Wp80Tt?&Dl(LE zWQ=86{UP0n=SWu8l~(M(F1=&q8ZXhp3W8j4`9>RXhjhM%=;hClY-Kum?$BMy*S$lq zvV@;WAu&Anl+zErvNv@MMiwVpW44}YOjJ)c6=)BZUT88Vt~VvwG(H59>G?e+6%?;*InW%DSxt&A zRuO^-T2ThlV0E;tb7O3<4Oi2X^~e&ob`rhjX?d_BTE@|0{70t@VHK%Tm4@acC<>8e zZmKAqw9)M3w9uBHDoX3Ul$Y8b4WKA(vDw@t50dk*hQ>{@PMm%+zuZ+B(tu9f# zJ>;3WTs`isEHS)2_PdMQ6#_W*`EhV_(sPDn4;VORQ->KtQ(J;_m}Coo3mU+o4_}(U zr0lvJuq^s=-qIi7su@R~{I6uj#GZ)Q`{h|}L%3n}&k~@o*=&R=pU|2UPn;gO(GrXT zEtlP_b6_I7J9^dq`;?<-ab=jg$k zjt?}uv98$I_ZfBV3CR?@xnXU#`GuP0g`dv379>^qa=VFi+%cWSPXw=N9;YSqN% zeP0>#&cCQHdp^_(L70_W2|5K`IbgF^w2z+2@=K~CV^sKgm<|GtJKRUhnLqxV{T;N_|4QbicRp;sP?3$KIW&VB3jb&}zOkCV?h=Cw7fhVkRME$7f3L%uuTma+kXqJGyMLy%Hsii-JK;KqO&46guhdx~zpVknN zPR%w45x{G|N~+EE6YSi_NRP>@TE*`ywHPtR(C571L@woM$(|rz=T+k>KQ{wSoZNQ_tB8+JYX~3 zr(};eR_1d@$Z}$q_!jx_%E%XnM*{7gz9K?_du_QUBuNm6QMc&5m#u%S6S*CcN3eRr z)y~hBVOnmlzZG)UmS|``@DgSDAI82hx|S#UGPZ5owr$(CZQHh9k{iF+wr$(Si(m34 zzyExiS!>psPrd7$s_N=<`*v4X?>?KWBc^C(%appYHFO8bRPk<`*Rlt1?qDg0e48=h zdUj_KAl=~PbMaoP4IEr5eP2a2`SUom5`pbE7BPS*EnJ*Gw+6bn?ZQxPAD+IJf)!a8T&*hhUdj--?Y zuKG`EwlYIPW$d$%N{(Gxds zkvdGJdp=8$KiZPch*DmreHJI2ZTk6?_3z?+80=M=-p`QvTUzmA1or)|(4?>ySz_|l zOS_S*MTnae;Z54(N|cbS9o%MFYU6=rj0BVf>r52|Q4$csa!+QCG)?bw{xpqEaF#v1 z1W*}Ws3n9mi&Qbz8XcGe=lhPwfhlErze*h_U|;qMou3PpO*RiyHO3NInT`b-@rsES zdlkmQud|y{pYFOyLfeOJ9*I8BEYvS$S8k*-j^EWg-8D?|CN)`*HYd!k z?a&6O4yOo`3(l2o!e4r13S(53poX;v>a!4MGitLDLI^Osh$X@rj(o0#R(vD^1xPr2 z1$ks>Ms8KNA<|TXbId&tqrhHeHTEKpgTOv+5o=;+uq;qPV;f0-AAs=SiXOQ9BcOf( zd%L8Ew9LN2_G@Q)gFb>Ygd6odFo&td%?H&Sxj^wqQE}UE2#bJzROrFYh(V*vA$=76 zOfCk)R-rh;q2bT3WSFr~Db@NBDSN;$(H#7nz=nbtTqUiW`4ymC(7GUt<()-9AKmG} zOpd}Zj4nr@;RA$q@F<&4wSCF}hCCQ!(B#<9Pv-`KrexkA1%@sdkVqIzL=U;U}`r%_u5cGZOZz_${r)CWP|Q_H}5&VNGMof$B;k zRNibVk);0R{(2<9=WWUt#3SC2+-0c&=wG(%U;c?Uetc1|vPf}s5zytAz39RNE$qdJvkB>MVv=YKb?QtO(SJd79D!nM zqKu^wjvB%R&w>(yl=qY>+8Aq?4E zWPF!(Rq0&ghds4ufkYs45g%iR3}5UieC!Pj61W2Ge`HK}7P=$aN3JYs*fM&o_x0}P z$+_y*D*jH=qyiKbRNaH9mP0+>NIhaSCBuBgdTJCUzIct-suSySpX4U;X3MJ6KS8J( zCsPMT?1;yYy$_WLHF9_!3kg2E+yZ$*xy;!UsgR)gS79Q={FkjFCK%G$^!am zxleqT82Dym*kmTlvg}3=|GeQ01=c5*7zRViv5Fr5Unb3vhuCe7kQDf3STc)A;^Ubm z!BSF?XGZ}y^x}VZ^^qrK7nJDo&VeRA=g((J@~|Acui87EOnN+(7Vrqqv`X^-+{Ikl zHm|9-3Jl=faAO^2&8Njcnzt%ZEHU2C-8f^x=C9%N0qBSK3j*)cRN5){|9t?|ga!rW zpj7U56aag%uG(lvm(Y0fOtnfhu`VJYRRg5TS*a7nS*QI(>kQmo1)cs!{_B3&^ARP< zqt`vjw9y@*{r;i&M`;rv;A>p)qhc7ecTw4f{#RrTPN@NOkkJe)M7=fcs8VkxF<;hn zM5@IVsiVbc;WMVe$!1}N$(1@``3VLJYk~#XZHc6;w{A!|&aBhS$>0fG9ysfA7z0tJ z6cACb6H?~FPV6vWF4_#RtH}{|v*yY&^QVnks54PKt$!!R&4ssFux__bCg^||cQU7o zv4W*7f|0?7;-{!D%rLT40@|GsE~Hpu*)RS&9hnSLWQ)f+k!`o9EpcRnpZ;MOl}OPx zl37XBP9tfapiAk#kM(OndpFvQY|>sIOV--%2sO(4ZI2S&1M%B&wZMIk3pXQ?RU`e9@(bz$L7 zSO!zC%vdVJ%$+t#u?*JfXJkJJ?Wf!$FADtJ=PE<%J(%T9HqC#&#bk)k90lG`C9%l_!NhMWu=Bnk` zte9~*e~a@%oeA5hBi}?L$eF(0S2b2CwN12khTcp2z9uz0CHOOrjwUsq-KJ3hL z${%Q2y;|n*svM*8;>g!xIN9JziaG1KqDfSgUkWvgiDPW8Rncy5_bgF-(&}pbPFpw#MANg7Wvz%%doT@8AxEs#;M*0lp2nBd7G(Z z6EA_sPmxnF4@o27q0vF!28sA8o?C;_Qwx0=SW(pCKPy#i#K&lOV zw$F&^!Rkh^K^MLpfTY}JBtaGM)qAWaNYKYXZ`*wdGd{mnhg5)96GS&gGj6jZF-3Id zJp7c8vyBh-;4~cl7#fdOEvmzZua^}R)QNgWF9QcY{*B0iM(9N<_#AMk!qF>k;Li&! z4l+oKMBZawmNnNv@~B2okfJVryxHFFp?XByW~C?Z%pm=36SwvWu2W;nV8~LweF(L6 zV>{RQprL-V0$0pDd`KUYEzT7RdXl4MaC3sMmOg#Qx0J@wFh8Iax=#wVY5^^P+babL zgM$d&YxZ!$rtHX~NPgCuB6?*f;E;*L0T(Amxg<_MEeccJ6M zS}Dk4aw+9FDOskwDz-H)wnC6G;n-}JD`YTe=?d5fG#ZJdJ{NpZta&aVkV;+F;!wTR zie@1C<+)m1UDbYDCEh7j1c_r440OU70XJjTxc?@~HOn6_+qpb+J}y@|VS%DO^4+`G zjt1SuMP2p{^hgExb_(|^xDur~?=4Kl$N*Ma+tNsm;R4Q%`jiV)R*!}K+hY+M>pn(Y zO|F5}i5cYxE-o1?KUkLfzk1Yr*j$lr!`NQ(JbT#fS@q5k3CIatpqQ?kT%e{uPa$^0 z*jTEMJfMair+gKZ?;~!fO|A@UmXhuwMf9CU$EUMQq(T5UB_+vNK*yOnii@^=x`#{W zAN-L&GKyIk37)^VMtSCDcjRW9t~8homL?wx-Erf2OeL0i7Jk!?m~vsdQI*|Cr^yYG z9A&e0g=0K-j_}=!=Q{7BCe>R$$k~`7TuL)S?ATb$7B7tFd2b8vc8{>=w# z`M0t0k)^Ev_dd&C&5q25CFVz#+Y*D(*<5PIqe>~c=_xFMy~&P*Jlwa^ow%Vney|5m zWUt)zi>EAHeRw(xybPn(a%P5;lp*b++-1G9JTv8B^E*VCWyb-f&RtG zmQ_mHwPd*=qOxC&yjUqE+F-9ao5{=EnmZq28)g#6^8O5=t$9-8gWbrPDcQ6-j{Vw> z|MZ^(4a`5P5OEIAR2i4UkB7{TsNsm;S-p#66@?*woTQPkYDA|*7Qo?WZYB$n)038j zjj8TND*sC)@Saq$Cijf_>R!@%Vq1Kd*u^mji62G~PW+qE#9a%Aap*dULw%43RTZ`PN&O_DphzvsC6e zAN+^Fse6P=ORA%LZDy(_B%H%@_&aramdx=jQHKW1tz?up#*yOacv->@S=df2LK5J$ zLpM-xMVtq+P1q=S%z{tx7KqU>D>iJIiZ-Sb)dB6Za?CiW1<7Vc!6!kmGiae~z&Kgv z7wH=EkDEyFKcZuJDn?Zkdb%f6B-OMXcli4Bbtqi+aF3dZmS4 zXqg`3OVT|ncYCSLsJUef@pJRVM~XjddOC2tl|vn+I^Xc@O#8D>lDU-X5Qd<-nu zH9M3_la>+Ey-y~?Dv{7rhTbjL*S$d~kTF$<%z9a}H@j`X@_6OOcNh+KIm~W#vTCTT zjhVrn%Z|-)NI0(zJf)q|7jl)@XgAg&y%Aa2$o1)&J49AjbjOcQiniEhP8Lnx0ogCt z(1t4Z(rjtm$_;qJ5${dkJm4eT8bKzkRW!(>ShV2~PYDYkgNUpP1!)RZ9RC zaZbD!HNGJm${|W3zNxOa%kt$ReEPCx>NusAs0ids9_-q!>yMYNtzFeiBV9iqpI6MthDfe7k6g3Z*~G04Z0GN=)m~$@CO<<`F!ND zqUQdF)n+L?+cSqjNDcl)<2W5X&jUVo;@IFf_KL5KhPWW{$p!U-fXoaqy1`RYSOrW- zI*gEd;8-jv2|5_`sSqnAh-A+OEwrt{Xzf2>NnAT&piSh*r zdHf%Fu8t!=xWF8G!3q(YI zal0d$f`D3UUqpZsfG*3zKh;_U(=ZF9aFO4r%z+hETu~-+(AO17o_VH@VqHZ(>Q}S` zT@J)U&`4#fR(G*A8lq<2f>>JoK~8!5>RUJD08Yo5V)J~Xep{3z?W_==cy}2GX{AhznmCHilvbs)pAD@j@&{1U4XVw~US-PutZrK;jF z&lMFZXv<3@1;8`@#lRD9K_XUspg4WE!-I^U!c$Mwy)ODERpnIGqc29oUhymdZwl@0$0R*}UeyN9T9hbHE<(HmNO930 zhdUhy>)6Fv@&Jx_V4-{*DnURdP}d-8xwU@A)NQujsBNPEEf=0rsj+)YxVTR6dqy!_SDK7=GiQf@3 z#g_(rD#k$~I_wy)i%&D*Ijh?)sCY>0JUoJq1H&xhFa$?RdJz%3#DfVEa+fGhakyWa zidBjbKEVsWPggop4lJG1dt%v5fc3Lt1lyf$S8E$>3N~>CtUcAw(FQufJ=I5$)FNl? z%B#f0+n8d<-Uf;#^!*%ELneN6BLvO(Mu#+NJ4zQEq*{*-8}@63;W2y-lxu9W_9_@W zE9M8*Z8H4&Sr(gB(?p5YpfUz~u7z|GY0+Q%>3YYTzu)QcKimMH+)H4@75iT^ve!m) z!J&yom}KgWy~z;yekYb@6)^oFAH)zt2~}{rjKrfHpR^JLtl3}YM?Y$6bT8w_z=k7Ht@#-?Xr<%t63B51G_dEw@x)!4-WKVz$HmBMJ(Tk9aZAWZblAji&+?^z9gsh(jlP1dNitvjyV46R*HLaARO``o%b6Xyz7x;*dC5a$a0Js)PiRSfZV z2ljIPT^qIn`#xXx3IsoUDlw`AR#unQcSc)orV(2%k8iiG?ikcqeGLtxAM9Tu+Vgkr z`o3LWT_jNIZWG5o5uXO%F2BE{!kE=Wc`+h(FKSVGhVFMpG7E3JVijLE_uJ7v4rA;3 zm2hx%-3FZ9n|J~&G zG=6^U?vdz_>iRzfyl&jqaUyL{+?bWodvRakG+i%FaRorCUr1kUMaww3vjLSUt<;bWk4(#rbSbH0Ic0&wk?^WX0y2D6(B$hmstb7bNP?2?;f z$dS6$2a#&H0yaX?+rbX<>_lwgGT!eg-&|W9t!tz~b;4Sd)9o&ddk_;&DdO&k{~Yap zivTI$Y?Jg`1YJ=OZ_C1nEH?jq{b=C_kP>>^0uLv))}LZxOD8yY?%Ev!de?r-ItmtB zyv8tAD`tUh4XNb17q+SvU{@;|?aNz}&Ge!flw%_d$YsVS&+W+!jrhcPK+#&K>#d5c z8q+emT5nzb>LvmovRF;8p}m$sgxo#hAXDk zvFf0kxf1h*JZ1)O%fq(`+m|OHWJVwoUpS0YaojJ~u8%m2q(}>9q|L^I51id%gDu>o zX|$k1OOVHIb%hxn6{tE2X2e2@U%kNqhgp5$qH4*z6kuUaBWJ8Vsb=L-Mj|mZ_TSco zqy_FJEx%F-X*~;OW>!sUs57~8{#p(kg<<4BKZr0<_W#(AGH!g?2!)OP6#3Jpg#eT%X(aWGfajGIuH@zxxyAzzx1yC? zsCPv}J50wDADUHG0)pj=iO4T05>mkvpPE&!;i$8pR&K7c`RJyXo{~|)@{TDdrPlFC zAsNi2H1|j`i3uY4uNZ>W^j8b!r~G{Gl!~SbR6eFgh9VFnGR2}jj3!PRd^%1-&#Mtr zyijy(jwU{)pge5#MirBgUz{aHPZ|@IUo3=VK@9_fT{xh&h=KyO!4pw>)KpkN{Hxi9 zRCMtnTYWBxPHs|Bs;t=5l7{O2_uh@iH8c8^C7G|BxQPVIsM?>OqO2D*-Oolf-Vj-J zp=nG_>7xMue?X1KQvv@^psC_3&o|y-Z1$y$8=lb7ihuiw&&_HoMQJ{w^Ya@1@Syf- zeLQ+YK%^hgL3s@uHeKMD4S|DCv;9W;CpE3q;T6X;;jaC}e@>9eYrhdR;F14|;LH{q zKNV&*YY6ZidQD)6a_g|x-(yx9quycEhomewKua?7AO`GMx>N>5mapT);UW_okl1<6 znUi%T=DlZTwTa;Tpo!Rh^}yL1byugeLxTmh94!^4gX(QKVN}|(Kf!zB_^meHKFb1mAcXG$f5Ov!;3`x8Dnu!GSeT?%h`>RiN z-$M>$0$IYV!k@{YFGBleI|eI69WX6I$IO&Mkg_N1&N`#mMX+E|hXp4p>`%4Ax`F(} z=mKo?nop6EPA)!^Ex$jr8uJ`XCItLbxwp9oDN>1v@vR-6Fe)hvGcFh^gt3d!t|${o z)o8t27)m^=>MKSGY#>tr%LJJUFqa_yb9mvzSjIiIPvo!>R$yVj*l>jJ&5{(v|T1s3U%mQVJTR z;iPd9*J^GPMKM>-0N0*gOeo{lTr1yC(t{;sJiqARfLA7wJZc+<7*JCpYJ^@gK}F{z z(o99?d-8wYF(qbkS=0z{#D$0Zvd2$olF@u5F(nuAmuEVV3K1n2zDg}35uuEZv#fZe zTyb!cQ!`F-CmGDUe%U?)62x$RaFB*o1(san$vcxyOl2?J5vJBQW=ubO4JbGuBG0-* zcvJcE>ld4FGlJW!2S&vj$_Rq)g%cuV5=Jlt7G8N2cW)1h4skw~<@)2NI9cNiA$Na5 z{t*-{&MOyuP{OCz4+bH6xA(S)$loS>$-^(Ty$u0v&Du7QnSI^?kMg+r)0>*u97Ph8 z>^fL4ocIr-lI93zBwlEOCimcgsdwP9=goK)OJii8Z`~HI7+q?B_L~Sb1`v?WqOu## z8fjIM!ja|nXX0V4gV`KEW+wV+hX%`2VUbEm3^hVSi3t4ou&~y{K)l_Oy@Q@iSvG!l z!?)!Gn~W1~2Vz*DZ-i>X759Ta^y`&TJ5KW6=PW2g<3+IEe#TSU*H58D+LbQ9FZ%^+ zH#oTb20ue_PYwdX5u9Q);E~3tIX@oawwxXvlGnn`of_}DK}oZ zknrYT1-Rbsk$!5Wq_rQ7EJnp2H`-uIo5{U7BZNY*h_o|I3ZwOp5gdXn0BmDi#=Ibu z@qH26ehSBgv>;A3>E|Rf?)l#lGBDPvBZWgNCwf-_2Q3$h*W)NB!rr4i=ME2HHaTXe zD`yI>zof@bc_0tEWydB*u_gumb#o==$|X6GnPZ8op{^-KBh~w-ONd6y>WvG0A~O}! zZduC)J9OsNpx3Cl3~3$f#|Vyv1#Y6niSjcpWF{n-r>2loR5C*aqkUAU_Y+@`UbO+F zy!rr&dt__@4r3T&QLB*SDRj7B(8KG$%R|Tv5sahcv;?EJqp6@>N3k-A-dQk3^#()U z$?NX{3=#EV)EGWa?PArNGf+cC1j0zE9#Uxh4rFEjJXVNKUasZb|Ah5 zv=W$0o!<m~zP@2$3rAva#ri2{~!COH6a~Ml2weP>sU}M?7U`HnRTKROEpofavqLAFc>+r10 zd7k$u;3-LtMFxLLmPT8{i`8DvK0L?UglqWM)6tU%!NS|~w(3weTK{NW@zm53Kraf- zg35eVGDpxRn7wnRqld&Z@D@+G0&C{yieU2I0(dhtMAgtkUk4;>`c6<@v z2ZZLS4E&V<|Gw8v1Rt-bH)ge)*0ocDpc9(+IJ% zz1WGmgHBxDxb2DRSx+x>ZKt|mma%@gbcW>a0Cka31>C$v_9gU%7iaa(>M*J1DTnPe zf__UyT_2yLvd-Si4BP;aqcVsiJLhUeqwVE=g8Jf&8hl=Pf)dfj-u7?jy?fF5MtNJu z#ok`{raNLeoilw%OI+ZWIj0Rd&CoYH>?CAn57H{j*v)0=SW4f|j7IB1fx4^So-X>u7#xGw7c1-c;w({$l@+JDuLtt89j6NTU6{H6ZKWM*2@2(j?U73LoO#B z^&E7xF$3>4;c_pmcN;ACP%^s|+Y>opMyD8(ZwYMBo@pQi0RKY`Xq}yR6I>5Ps!%Y= zjZvK2Xx6Hum*jzwQx&ybIsXpsTKnBRJz6@Gr$CD0R!zDP8s@&1LTVkK9rPvnv~00} z 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%0D_GY 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%0AfZoi;9T8lJLUrXtj;H|J{okcP|;) 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%0A=F>8^q zsUoC9=z7v+xEgRvln)&tVUAgb`Z5XR^tU%N`2Hgm46pG#_buE_qc8$%D85$~mCa(!>dHK8;AcKa+-}9rMho$sK}#WSi)qu`k@D4(ADn8-6ONcUPHr>%$#iW{tSF zlaC1Z&$uBn`pD`LgYabmM{T4?diI@d?4^#l_)qPaJ3Z^xUFV|c&z&oipzU)C<65u zw;w?Xo4xYb8my|LCy$sU2S=Lx_*hvlRLFf(CN`_dX+o;z)VLF#3XR!!+m+m$4o1yU zBall|W}l8|-(YFQQDc`ijoA=bD|Qm-JG}?6Q)zNS0;UOz-o)Fm>b(KU?o=q@L0tI>8(kzxz6*uKxhC~JC&G9KgBK1XLK~Rzy&W>W8%GLl?6Ly;HWzKX4Y#GEd z%g_RcQPv3vs%P|y$9-wJ{c$GwWEo)?M--%lGtaO!G;#J!7z296!=VGumNc|JQY72r z6Fqy?w9?>SDa0yq0AwS{c%bWQruqqmB3d(sP7d|spwXcW&nd$xs;v`dW15B0`|m2i zkab_l0JFtLh$SzN7PIn$MfzI$%qrMf_D1}Sf4CfiNV@t$J_uXzHLxDel&pv+Lg}z6z$$Ap*v+y(+#7r?o|Q}6I0vMBd^E&~`UVFU*l%)`eG|ktQwG>OTSlB1lU$xN ziC}4aJEAZ)qh$#ii?6ltsG-w#hIlQm<=pbvB*-n(&E5zK1PufaXWx|t z!um?pj}0ebV>3bn!g>ZmrN{!eMI@@f8oY!Nk-J6+8f>EJ8%>Z@M@042edfZ+cdnA` zs>0O-&cZG%WY`nLeMGZJ{dEog`s}Qr2~Z=`AO!<;44D*!NMaq(s0{;kp+;bSPxiVx)v9T7;91bzSM}~7vgN;sz@(1ev=WxqFoL;I^4^-&MGUnCa|N4)0 z5N#;i{CH`iux8RY^@;6?*hs6-!NkD~r7LWT=JG+$^S7MsNBbgG_3*hT*M*l_DffPV+8WZ$_v#Ye=8oAz6^34?pZoH{&8TpN763<3(Q1Xe z5sE9W5zAM*9W@O;bEsB`z>gvvh$T@3%K~LVv#`M&8s(y-6?O=#HARF-g(X$w!86); zt}ruJ#0X{R)PXl57(i$J*iLwikL`;Ay+8hsU{DR{d1pu-mV)tBy*cV<;%|Zc*wQ7} zg8<@(R!jh7QJ!Ec9H+pj4`~{P9xsvav6|&bB#C1JV2W6pd=91qNSL;WVLDA)=;@R; z&4FY6emTE&X{V^bwQ-Bn{pJ!U-L{R>WXnKg!je1tK|vK_$ZB##&%L??DQ#9e= zr{pr{9(*7zt2x&$+CsOgty@|;Z%GkJW_wL~=2gv@(N$jmV%A!%zzLW zC!AG6yuSZ~*+~2tbK@I>Ip(K%VOMeB28jrj7lYENUs#C7wBcZiMacdn^!u0&M5Y|ZfqyXTC6?h+*u9iOzJJ)FPd7AruZn3z~Ve*B6Oq-8KJ2 zvGM}LM0!&A5c@zIl#G<|Iewq4-xYe-l-)}$i8OY6TpcU^OnSGo^(~PEZbNe!(peU) zo6VsYmC)RPnsXZCG+|^FF#*Xskj%&iry*t4xj5hf{<`dhOcA9Eaa5fO{~K zv{yGvr!{5#t*DXEXpL)5|SVp|zY3lqhgJdW3wXRL4t9xAf z^AxMjR)lBwyjx?Q(8I#RP0tKOk+R0+pK+09nh_p{SyTa>C4kZl8o{qW--KnTR6$!^ zCO6&k7iKXvT;3kDeTq%U2m?gj*`zR))wRpd#un)M&6f}9Ig^&tmX)(SaVvj`^wAYv zT|$UAA9?1fd0P2tJXAdg`|Zjrt{dCAqL|&=h%Aa@j}b^`v3L|ct!F_&2WJ={lT!7c zr;VXG9OaT%MyyD-&Vi~U>rZp!?!bUfkp0dGe}i?Nu5}l-Xrr*M%6hm`FOc`X&Smv_ zefpj(IZ=Dp8Y=0G?AnkZ2wA>e0Z z;{C1s`2=vK?_2%kF}4pHlcIwYUWKH$ml^3?E0BNg90wLRi$~k(_EJVHCUOoW!Xy#} zR0K5GX`+!3>#vwAe2WWnTe}w|+>JjxT{cnAr1X8`ai3EhMd)szTH=;`xn7yR|~wR74C0B8yiuM%&bvVK5w|p`EA$ zr7rJSx_kuA%}Q@mOus<5yIJu0H{%n<=Qg)<338hP>mKTZUfSn$H*y?qW6;6cE;Zh)<4DY&*fUDhvLXO!G1n>UzQvU`|uX)u5G(JWG#8nS6W9M)3+H>3>>pm z_B-%>At*M1oD~vG`5>_P93zdH``Tah4$yoOq|gn>CZK7g7k#SyTi~BSnjB8pd>Nz; z=2?Nrmt7eWAgRceb0OGm_hYmQ*5><*Z9`uRI=x$41M~_Ksjp5IH;w`NW^R8PkTOe+ z(5s(*@t+W(?~h&kGI=-?U=VzC+hxkoz95Ix%lBJ;v5Nc`Bp-&zxg6AgPw`n=+}cb6 z(|4zaOvEQSf?>e?4U)tTaI(?lV*p5pZ+`O1c%J_Y;9>l~0UkzH`u_$zTRc`V*e!88 zAg6qfWCov^`(tucxFLG1pfZ zRDFH7=FJ(El&UBZL*;}gXAJ{)?^mW?mA(%dB{R_@Q_ox1^`1|UN8ew1Io+S1zAukM z$LH_1PMzC3JYNqXY+~MzAzR0eZm(B%6?WY|x;_v0cLgOqL@H`*ot|&ccSMRTw|Hg1 zSC+ID$pd`1$Io{K#qIquJAA&6mQRL0eQFt0pPN-f<(fZDo^N(Bcs^jW@P=^zCemN& zb*n^ecL%DwKlVJHn3+!Po<|P8S^2Jau3kpWH_KHSvDs?ewGyWD{Jxjk zb$ptR`A0zDzb`}3ZiA}2tG`?O=63c*mcYCl+tyXEKJ#;Q_Qjq6e|RtNkWxj`mjE

> z8Z8f#(8BJU3`k}<3}j#PmlPrq(825V9=GRmcY?&%`aTTQV|DC@6chxUpx2X^U7KPxPW5x=?s+Ee!6B#@cp!Wm%Sc zU`vUC#>ilCvNbI-d;)ecF|avDtfi=@FogNHN)EahxyE}%LzZ1*ef3Kw&R{d)-gdyF zO3ss*ZSw(U?{DRrCoo$8w}1NoHLJLR&5%FyfWh^kTq8?wfLQO)6gYSEz{Cy;{a<>iDHNI5Mb%n8s4=~O7e9)Q~n~v;+NWS{LtB^I7Q1iII zSj}sv+0}xwNjF5?0`<3n4$CvI0a3>i`b?N*KjBfsYsOsbV?M%1dX}7q_s8d z(ePi{>3@k2M9!iM1sd}6;SKacl9&MIk-iigXDGa4%P0qDqU#)q^y;`NRT(@`oQ{DmWcP6}s$tDX~ zeQAZpe~Y4#5+tpSx^eKO=E=s3md^|%t%WI~ZIWa<&_woqCgWV%Ws{t{qX1n^l8;oj zywlVf^`jEi0WSj&1j>e7mO>Ph8oQuI7>-)TD8`f28T)*jKRy}Sk1YK3JIaIfHSSF2 zSFH0+NUK5SIeP-`9xe2^nZs`X#hI^J%86c+nP&v%cKDk=N^FkKS`0HS59rSZ3Z!HNisI-O+n6FA!hiPyCJAqas)y*2U*(v$YH{NQmH2^j@=NF11 zLc58S2Z92;0I#S<3oa2KzC6y=RAZZN0LHi3T1BmHfTL7LA#z=zXu?9 zEQ(b~gQ>Ehlo9ne)$d@BP~VH3_SM03^g3fQW#RThGgDjxAN(OO(_jt#lMCsuj-1xl zn>jE$8{7-p8bEUAFVmqcDK+Ft(ZA&wg-k3-BAL)lnpo#xd1y#09_(Rpy&QR_4)X~6 zf$PTti>VE|I1p#JWtQ205s3_B>maXRxfCI?+NW5qJw*nzs%pN((I<(_n87y<1~j4+ z2YI$@4KzSTd`Tf8D{7DHP0nbDw<)1pXFq%Cs9(sCLN>u=7!VW-R5&}Yzn1MJ#-Kjh z3_$HnsD>{@%Z2Gl-n5E|Tqm0Hs)3?)45 z)l`l*IC?!xu?p{1Z6H?l1`6sMT2p8j5giRDu3~min5!6mEpH7)9LT=r`07afq~kn}D4Tw)jpm!6B}H)sOT%k=gv|VitKX zW|Y94rs0cKFs6JGTOlgNdQt^Fqq{N!$F5L*+~*m{V||;;*@R#e9E-qFrN5HakQMjY z(K?d!0V@`kGLFS#Yb}9l(=RfUP%)NZwClGY+QZXtl*U#hBmTnk(zAxc)@m&zc&Uwi zw7GwBTSrE<77fazCjnpyLWXKgWHzS3nitc5e9A;`@+PjNKbDxH^V<}G8P2*ok#VN6 zTIRpo7r|-6jKsp~3YB4KVI|6}q;_8tAmnWNA*M?kFRC?$a*{ydkx71dc0m_-eCR|I z5?57hQgVtRE~X5C9>|+v!`h44rc>vE_I`a$?IM3Zwv?+Ghg~jOovOhW-Nbaf_<^*- z)Oi$x`3R7bXr7OO=KwM18|iu^LZ?V*y+YRJg5%5tIuGV~GJ(ltk8v4oQZ9kqi*j$tqoGm!swmAF>Zm@qkg4Ky9v_jAI^4qIS2# z7S3Td-$=?a#~W%hp@zn@Mjp35@M+M34wMe)*6CDt z*(!GBLB8Hata|2Hu5@6|o|}L9d8sp~@sZ4Pg_X%>u;!j-k(njt4#LNJf-n3d8anSwcz70t|o zr`CSSx46~F!nVS*X1O82wk4yw+XH5dL=1R3P+DC~x>kgl4WDlX4I@)COf@;UZ*Teg z8nqL=pqUM)By8s0>6}-u7mZQa3vAY%T2RW^F0&pTaDN%d@na!?aqd(yuZiS?QpIU|AyT zXI%1*5U>}({U7QHcPMd@X^XkR5XSRi)46<183L@4IB~wc7kMq1oH#(ru}_Y9occ92 zQi%NrFQrF)qbcFxOrTt?CX5OFvhO1-Ge|AytA|PDa=Y>!?WM>-wu2?0u?Spk|2&_K zNG9)hOM7|9iUpYgrPHRrP^dsAknLc5=Q_U+y6glu!U?B1r;UelFx(;b#=WmVTq-1W12i!oP@TED8pYR#c~!=xS_4Gb2*m`3F(cZuLHC*A#BIuIEN;+1fwx+B3}3a~W&$ z6$;LYs)7dd8=EN3s}#;YgBE6)-)T4YG7x4tD~UJ?@#GW~!up*O2^*@MksGkLM4*0% zuo_C~uOn1S?%>gnEbX6=jkqKQ6tyHVyrL0 zMEJQbGJrMW0XT-WLbj+FH_BFR&EfV;lAmfJP)UW(q>3A+d6c-h%Ytu64tiv`>*AA>&^oKWD1M;jw{$BS*y5O+GA zPXZuUC3ocv>?uk!c)O}1U*O4@=kRo-GbxvZDa%$=A1E4P(Cw)S*{9X7roW@_DupiUt`S)TXCZj6vp`~Tx1zdg@m>Uwg{Ov zkkMj^dH)w}(&&$Rw5UZ2CjHFBK}dgv%X29C6ta2)voCpc%&lT%try4N33A`~iQybd zvRPt~F51Y15P}kNjg&eKDZ$D@K15J6b-#K8FVSOrXv*MgoR3RH)5QhFNF)5tCbDSX zjH^36msW2GHwin#71}Tt@j0{oBtEJaOo}PgPZ*aD+hHE2xlUJV|N6Dj7N>T0Hoi8_ zF86`Ea&5G3Mooits?Yze#z5z@1%iR?(-(qI$ zWRKK-EVZ8_E-cUI%+P(u^7Rj~k5KDlT)LvKv?|Ze-#L)6w?nO`Q|2#)<5F&%2|$QW z|5i54@K@h;5e*tAmt|D!7`KaqhSoCGj@N!QyJvIW)X1P0QsmZ*P7cYH$Tn8{XT!^s zs@YhHeaKG?MT9-x9L*-3bA~5+e)BdZ*JSJ+KGj%fy)TQsyMZD$cKyMwj7;TK_k4F@ zzy!ID)C)Y}>m^$FpZk+|4mlYMBU+xn!l;|`Gd8*Z&c5)c(ME2S%h?^qviW&S4>p|m z6_lsZ!cVD!Pi&f7tN;*Jb-T7dg;quV45m(qBR-mJ?Hl#6%swB$=WR^v5R$zI$Wd0IY#Yu_u(sDt3?0qC6IAF` z=Q>axIdCPzX^nZh&nK!=8WG}>C#%cKWne3FbkPPR0UpWv(i=cTGIYiGu#8;o@B6Np zs#+v!A*MF|ymIvOtw}A~l6`U`JF94JNNnwbX!!RZe3efRMe-C?RF_NL-I3%KM{8kU zp&N5`TmyL_w0i4+@@M^N=4J)Ml@Zj8ec$mXxeobPE;3k;_#eO~=jx zyoD(JPf2c>C?CJBpDsKt*&1U)fc+s(v)y7L)!kqV)nnmknyfPX7?kBjq!=Xagvl|5 z)}=m?>@{GVl5^qYmUua5?Wu}YoGbIf5(;Mvi|n;IBC@3w{EJBzm&NDxjA=pUq=-2k z^RZaFQ^ZUv4_sS{EZ(GsQ~Qx4(q553GJh$=5+M3nW-arxf!LwVBvw`-8J@x~Fmtg4 zv+35RI!V%KN>;SaRW9%ktuUE)j{P100*?>7FJ&OulDL0#^Zs}IQoaw&kI4^5e~N|q z=^4E)XqsH8Vnu6S9^mJvN?M?}`C+NeRh9fnGljJy>{Cv* zg;+LPKV#nCX(4Oo32RuClLsx}+&p}yU>F^^TuG{vW}8Z#{r5Ysin|;(Tra&w80{4B zXKwyGKBX_hz`CKmQHrjJ<#}78hfMAhtPlm&eHBYG7)E23dB?1@)oTlu-#L+Or9=fv z2cS`-^IOzmjyr`zJ1gMgNQG0OzUW9rB;g=N#>SYa2evSg=NF=S#v#jp{sc@M0TTAh zSb=8Dc@ZzT*3K(d2d=zLV;IcR`tkxd6;*)p3mDT@D2O{mLoEYecQ13_%NL!& z>p^GJ5xl2rfd{{UwoBW`uxSGqKw}b88LU?5uu>x~hA_u1WTVk5K=L26 z&*BCQ#B6U}RbNg#x>>=QUC%L?<8Nc>C)L7@)yzrt_;ZH+*m9pa(-$?<-auokW=a6$ zqBx#EwJ6kyX78ve3lZTN3LVqzKPQ!vF%(YVgn{6S9eO!_onm*A;IyrGBiU&62$!mR zf_i%!W+N6>U{%foeh+5Ay8>)&G z=N8G{(gqQAC=rO@3asDQ?-J)+V*Bcu1h{qeh|2bpH~THMv+wR|zB&-VWU%pkgfuLn zC*@cR!9GNisk~3g6Rc}u!B*dAwVqsUOyT8Ed9Y)_o@e}>@=&!9_|BigJ%jrxWLTBY zNV|B+{dT3iv%7+o?=BuQNPv=N1A^(0nhJ411f*KZ?es%3JdX{or&pg70M&|9I}vjI zNX$cMwPrW`aEBP0M&>4TU>U4xfWJ}npLVw?0XGh_z{A^Zf4``(1>mT-c!s@cncB7I zF<#%#6%kh^9aC5T9DMe_d_R)+jK0#^m36BOw57rKk~SFqCo&(1>E~+?)_eQzU*dTH zNtQ((=`6p)11XY)%r6sLGe6U6>HcMN;GJgrdUO?CgPE1{e*zf8x|;FW;z@q!`M-Uopy!!2H9VCI%-jJqo5u84 zxUsaid=kLHX3EuI9m8zd*TB)4yFG}WDyFJ0}R7tj}Z|uUk4LXdOaL@c00E2 zrOSVQeclgTHg0xqYt`)O^zmK$lT@=+eO$hDpZ$}l3j3Rwnr}ONT(N%#@8kUXrP%&&*T3B8WTqB7VMyj=pVywO~f8jyQu;`AIJS>T-)>Za(uzm z|70G%cTPP|d9Y&)4rs@Q>N^b-x=S($V;8Yo)yU zZ!^Cg-NrL;1bW+=&R9{3rM7xCMv^R5mQ}UJuy}PcF*PHWr>mkmD@?stw>Pkm#FMeB zF6(r@ezo_Pt@}dNj|oe7Z9H`fcs1n1gwi0SCS)qv`|0WIkDb?E(!^L&Ly488QlVOU ztwMT_@B8yh$RUvSQN8gZ#EVNHU5SA9Hlk-4%hDb;jJCaN!fYvDT`!UKz=)urbVZ8$>rJK=Y zK@s>Za&a)RBF)xb-Xfw+K!P{bq=lC*7rnRo!zT3uH^Sq-X`|v?Vo0U{)KdveO&9^G zXv1t3M|!WDFh^Qn!+M0x8(=9%1TtSc2e-GyYVf(G{Tny)Uc5r2x3}+{?7RL}&x2f1 z(bj&#;?pp=6kh_@+}3ATYud!WOo4efP2bKVB_609o#n0TI(Y-n#n@zqiv31FA*`nw zcS*&HSSd#K8=R-v7H60N1ERo|-`j>8sqbeA%gK-r3OzDE`WNTCnvLO2CEpM;Bo?H zeRw*)9)TiX*AI%tv6`{gNPL~ic9Cx6CM5RSw6lK>=jo}T(OB8avaEe}zXi@g9)Lg0 zxs=!I`q-E`y&PrQ>^$UJ+otO6gk}S>vm=|cXS%kt$72hS`=qvwwv+jC6k72%?DYuM z_p3hqOZ`Y0fnnOty|Z;0%aG)Vh1h3SNeFsg(qJ@LqK{{158tZ=d$plLGAQ90sze3>X z46Z}`N||#U(3nze?h{q>Y8;oEyXt8wuZY~1&9iT(q&6NJ%xymvfSY7aE-Kp>hXLwd z-=|7(9HRV>oHJyq^*1Ov1gi;T1Scj}jVE+HSaI`EOt_gX-=#VcJ7)wx87;eD7%v8( zt0rG^M(W-Ih=rCUET}aPLi@L^-rnIp)YID@3wKHi)nQCC zR`4{S#Zo*y7!}Lu=^q!}5mnyz!lU(89koFAniaSIwF9C1(6CwVcT?-IO7$Y7nw#D| z)0an2(jNcui*JT9zE_ttcyE@a^8vRiW3g=k`kC%v@|qE}EO*hi^-^ZW*P2NL)Jr_z zD9sBc6;wr^&~w)}FxfZW`5OT2Dtnc5Lc|ag16zipS~|sH>g~ zzSk);dgd1w+PM__M>3%aDYSF;A5iSj%Y9zuQu>W2&=X5RYFW_I9|ComU}5OoYWn70W#PBSA1w zP!I-;2sgpW=c&k3rDTlj+CFEca0-Sg zG4Q7f%FYCOMIO+TA+FR_8)&6l_=;Ye{|9~p~IWf{`)B93O17Ni$2rQ$!-#?p2<0a_3&BJZX~ z=B5CgQAu@^JFGSpp;r{XCa^{1GN~q{R_aVuuT|G~Ei&{tyJi|OgD=9=EAV2xTQJWJ z=&i(dY8qLF=eo23<5$}>U&xu>aF3 zcrZrc^!_c%@BDRn?cTKe+X=MCBX7?;;EqqQy`H=+JKEz025Kr!_4el#MZN4K1_-lN z6`-3sA4loMitSiywj_Jp@QWe15pstQQ%8)c`04#uRxV8oBIA*rgcSZi304+jr|;6M zxq9AlNO5^%f*R8tO0_eYSocu-g|QIkVX2&Q5_`jC3j`<5xAYGaD4S%lP0F{jMibWX zzV+raVCGs$4)H|p1%#MGvrHzu&Eq(9|E-J;w~|Xf2Vc7q8;E#YE1bw6wh-cp`c8?jxo>k@3!C4{|fkOp*_xtPK)D@ zw1VpXmGH-$A{x{M+~n=}pEmO8Jkms0y{3{;Ue6dc6@-$WBL#ZhN+0_W{wcyOLwJwJ z+}XFW3xI?dOZ70Grc<@<*>+O)Ga`DJ&X5^P4C!;(N=K=R@;#P!5K2znC&aZ!p<|o! zxCHds0(z8E39TCF#ZQUp`;5*CLOwg9sr?l;QUP(Wzcjg7Y7`;u9s5A`^ZW0F>__N^Hr5eB9QZRQQy*0D+PqKl`bzg=-td%QDe$($4el z+Ddf$RifKjp~bc~+HO@Iha)M^=-`0j;e7Gf+5Vl=a#)+gA!o)Q#%5Aq18nHyuZP{5 zzt+e?dLvXvB{5*1Xcga-(F3oR3YLe(N|g%8mo8*wP4fzRb5Y4}4^?$|bkB4?&|M~m z#jziE29)J@;H~fbrgg=%ve%xE@%5rI2GZIo8;`8S{wih(8->k%;wK!Tv6!y|I$_<` zjJiciqM5uK21-U~EoC}pwfL{oE-w@EXMa9;tyn)e?!5h6@}T^jj@g{g`IH$c&WCQt ziCkMut}KpEq6{HSi;!p%ydhyKD8x91GxEP>Viek4^mE)afYf`(h(e->L>4c6ifY*= z1A?hQ!~ZQ8&JhSl8Igm;JsPK#>JeH1pb1{q`olKA@BSxInht-(mAf|(guJA)NDlop zGhBt|pv(l#$$5T;6(0TpWH@CvBk;|Gd@osfB!dXJ6av58xYkd~VM=*4%9W#({nPki zN^lE3JU-sjyOpoot7EDBfO(A~0u1r_k&CqDv4B>2aLPf9G5-tnQ;q0HV6%?K{iijr7G4Yi#dqDI{anSuM3bcoDgEvX!^W(?Sm^+rJ0 z(^Z247B}(6KQe`o4!l^ho^&G39JnToTq?s*qR%_UByq_{^Pyvnq~!{^e3>MHv|>SU znnFk==#liIK;@1%2_c=5NJB;>XNRtiZ=MdH5}B~s$sidz;*2e$D-ap+Ab zBH1V96xZc6!{jb0H2$#s>+LbU(PC7g;C)b3H#3-upkP_L;@QM1C%*4IiywLmVrTh{ z+q1-q*;!cd`b&xw0b+0TzdDqynsSkqPrU3L*bE2eRb|o(D^+$=oak0 zgknBKPXuN1>bOD@dy{38t90DSI>i7J|SkH zvx}JnvBKkwGmJqVPFZjBU+u#v70ga_EbuduRE3q@C}D8P@3CgSuoj&@D1ofCRqDym zw~gQIgzb+W$2zRI++2vWNWpuGT_^|rBMwrYD)teOQ1EQm^=t-m8z5K1P6OIT2AN*2 zP0udo(;aylgW!YZu=NKfH&HNq-fLBsln}-KPBG@nDcljkjkLr*IiV?n-W`{~%8K=L znlSLt04)aZA}!+$5W#1i68mrM1(c@nq(k?7IwdWaVdazP{C)^zZ0LJgLYcbRv?eX_ zBkbx{H0O5@$vmgA6zT9HGGYCnOKT-OHw&7$8B+`nx0eC3f!I=KaQkf5wO#92IBEvL z4Ro*8`ke~9ig2z0@sCbpg7;F#!9LofDxIgnO;js*8i^ea1X~;hW-U|<@S{N19Sk&@ zFJknX$cKA=HUy}_riKBD%z}FxVvCB;3`Yp=xD+phis60gRWk_vGw2mtNWXdl%>2&^ z&bQF;(?-o2^4Y(4$qrc6E1%)wU(>){7}o2W*V7^UP00~P>3;!~FklIWmAH|Wgsggj z#zXk(rP?YXO)?}=_#C8-L;~fj?#keW$Fw};=|J>i%v(6EK@IJPB00gAKx=HhRhWgAGpK&KMlc ztRSO_=+=0v^J7e9aR&?5yXA-73@y$W)a8@0CUbd%5f{~6!H7u~CxbVaXEtpJBM?@b z^Pk|AGCwJsFIeIk!Jg+-jXmUBuqK0ej}er3pdYt}4_U&<5l$7)>#Q*4GwQ)LgR@>K z-XwWZz)!F{M}i=L#$ZA}O#Q3Q&`gnnAL!4EthhGdO#~P1>mX^B@W$tbIA8wV=7sgk zoz+UW;7yU5FV>8mMa+O(G)maI+?;B%I`p!TH)_D!P`==l01Z*N(eBmZU1D>7p3BGC z@V}k-TW&>x_me(R8AcZUm!~OIPoM85yE;^KKw|uV0J@$D{`-4xR#!Dc{X5s{<)T>QiNTSZ)wf3WP7$)#enXpyGs1&chPYk_?dz zBo#@KNq1+b?UNA#`iuA~wzL9~X>rFhk>3obhJ93`NeRd@d&bPZ5mH|Ik;A{wDIhS0VGEvU0Oy>+7I|f-xIQN|@x^Qe6?%YAvNri+#RGO)MEUVKK2Vko|0R!V(M?6UP zCDhia^F<;pD2pWH1%t>;CEsm=11!J5^1h?xKIIhS=}10sOv!YlLca=W za^VeF!hMDvEZ^Oi@L*KAw75uD#e(@ASOn24h$d-9y4-q_<{ot4+BB#hf@g~D*{*l-vbOV)d z2VWp^S2}(aKThnC3@o&Z1m0YKz;dBrEIDKr5J<$$7Y&>O31LCgAx0#jk&2xqjo1EW z?&LG$wIm8sxw0jmj29{RMS8a#9D&3;PLqvprLtkuYt4>H^oW zWqH;(IXTOH4GHCp0RbzB6}?-ADfpdc6qXPeQ51~)WDVL>X-rh?#byeZ=ZK2COA~96 zV=q`XuKj!2yP=&Vc`U>Fcy`_1`5aiHpS_Suz}Qg6rdvS{omNe!TG>Wp7He_aOP05g zGip{`Q}TAIY>Mx+OI2GIllD`9-5UdKy?Xr^CL8AEImE>ir1P|HgrR|QyFc(fA>1evS_gPKQN2H@{2jva}cJ-tyao zbS7wcFyF@C%=adTN%H#fS(lVT8Uc~P8+XOTL08=JK1z>Y-ysyVc4iv$DcN#aw`vGNQE08Oz zxbBDDSxNgB+ANpmcb%1j;Mn!>9TBX;FX)tA}=Q$&@ zILe86oJo}PPetjLsH|K<-D*G?`STl?AF zEq{(a`CWT8eD==h=!?zUJk{ME->Tf+xm$aZhgH?Ik;-1T3#?Afa=v$P zBf%Ryl)meNR(1zQOTFJLpDmTE_XK}l5cw+9?|fTB<>xiaG_OEF^tK>;?tU-Sddl_e zToH#v{TGH^pNl>|&02Xb(Y)uo3s5JS^R7*|SY1bb8Wdxl=XlF40dj}88UdVLSC(Q0 z6uWhMk#iF$#j{H6v}<*UrN7$v#!CDYa)i-4p+11wAvUC(&M;~<|B%10j>h{bks3&N z8c9fMyK_t`F27Un6{pYseCRHFzyu}3ED+7})PxowR&7MhrZp|!D8EfwQ_?|1m#nnu zkHrOSR!3N12DUglg2m%F#tQ*=z%|DCP)*5WQv87!3CvG zD2lAJ(jXEoBIBso?n+PnBnT`x!O$3|uu_yvS6qS+g#k9T6%RLUrVmAKgqfG2lZmNx z3hgkBo)&!TewB)4s`g888OTgy`^!UJEQF}4&}rJ6utUltF~-`p*uyH+5kT34M7JP# z?f}@XRUoIdqZVFxzOjGj$U(Pt+ilMk4G{VYPW;*V* zkyY4+$I0L?a9TS|thpsf{dcf7B)da3nY^b=UKaK;(05cTcZqMLHpz&zD4aYsPAOqv zeNb}P=y--80yWr14;Uh4%g6y|@BvK#vIZO(g3gtjYz&Q6k~bxHL}aGr-bc&%Z? zqf*VT7<)-7EsgnLTS+cqyx`*#DX=ec)Oru}z(3<$~YvIAt;s%}s!&^vzUM9m^{Ud~^WqUj`S2mA~xqt6aEY+h9 zis$1aynT9gz$JQi?jEkDPiKfly{2n~c>*&j_Sdi3Ec?Nk$qf2P~?` zV!j5{Bv%g1OeuZA2dN}iNvL|WueK8H&?EWc$Dj&gXU-vlV{c358>HA=WTv2(1cIpm z4yfXW6M`uPCmQlaiHIUXttDgB!oQp-HmL;;Hyu&MhFe)rr9&6cz&vn~YGkqbGNh;; z_XCO!FJy5`3%?XcWK0O%4LRU$uIRv&5>UM9*$n?=E0Ng@_&W#s<#vxYyv*tYj~B-H z8NC>v!+9^67{Ej2#D0-y!E{N(kJd;c!PPCSMsn}#k&qmlwsUw7jqE?SGPQc`h&jYW zvK(%xr_FHDMoswU5r@JQ9B^OLB#LE15ZWNX4mvQPqc_VkRunbaenjeIl>6lbQA#G~ z1W*?QSQ)Gm7tiy8DP0#aK@@3iJ_y4L9wrE;bG5@1Q9#UwDI8HoyV(pB6C<<;;`)oMPv&*t)<#Lr6(a=XV15$t{0I{iGS6ngJ-&B=k~m?(6gY_k_0^hsUHfJ6tk?iiN}a&PP-j2JNfX+fKbs1tHqgkBO5Ia%hY}07P;pI5k0J_X zN@yaP8N+R+`4SJ)hb%oMxBB@yNN)Oj5L37MwcfNS0bANqHW~ILe^k2BcIOX%)WDFY zsGB2t%Jb+qLzQ@#dK|$8779B+8=R#tF_1AOW)XcWid}1G8>KIOr@-2apGgK7Zv<90 z32^#Nq@<)b+j;;Bof-kHIAyMp7b(O**jomT8j&xD%4!w0gBU1=xKpZ#>*k=6!9a9q zC#xk64XI3{9Knu2NQSnN-e(<~b+6zL*f?{IR2-!6IfG}(KfakvUPih$G9^K}K3EP` zlE%jKw&6&iPBxkPT@VkAjA=&u98w)fBKY^f2xgg!P}Pae5gQUm1ywF686Kum^=+&G0JLY(fk>786H@WgvJ%3}ZOS za8nCymlWV*&SFaf#~y;APE$B04CemrutA5I5El?hAvDe~wid#I^f0_*+%^hh9O2x6 z$X&V8n@D3L2nUT=cax<7^SiCRw zRo9g$6+sJ8tbr+((lnlZD9Uv=$tRT}FMWc=h}sfmh=4ePm_z$lKi2^k0F=JqeRQ2xXW+`6U0R9a2m0(X*hoT!n8rVwZkIsf&Sz>QRyRs=hj)#DT{0Efej?; zEjYo5yemZRaj&hkSGH;U;orPf9us}TxK|?cn<`HOWid@-%d)sRg8xphow8%6gDVHd z$=n}0^tWgBc0&A?ltDf;3Q&DM4U~0=p{ai=e1j$NZS$DA7aqV~9!-TRSa@iiNLf0^ zQZgkg99)Ra@~d;gm($HK=%BtlGy>k*kv16PV6!XW81;rSzb0x$#}XIak|&qxPZLj; zSP>yUuXezz+MQ_lNj9r%@-k5dq?%kLq_dbKgiJw|Ro;=z9#>cxVsdCR$<{boRZm&I z;0!-X69g%3VYU#tSPJ4#5<(AD$KM&gQ0p0$JZeNwAj()m7g2%WfOh!K(~(&CvCGUB zpR4-Vu#Zp01edB#tt-Hk`9Y4I#BIZeL2eMHOhJJ1bSaQ8g@kdnq|*{-(8mrO&i!E= zaS7o=SvHtPp$0@;%+^f6VKid$vI8d5=ZEuF!9=>^T2xCVj!cB)AQ)T`2T`;}jF zWE{4_r)+?VH0)y{(-_TvOGY5sn&NHBv^~NiBg=d{v|C1cOl8Kms4SsJXAh{FVM7gF zuCXuTnH-qQ7s5B=FxhPPXbNMnI95c!YIHP`r60NYNM5r``o9ifqI+TVa}?h;bsg@* zd)f%@O1n9Ndtt`)dyfz5Q{!RVIgA1N=@V#1pWGSy|EdH%KU8|z_GgN%=^B9SdVhDm zZ)&=9D^Dqfe@&c&CN(>J>!*mpJ?9ogQ!7LYDB9m!R%D|`;RJFRZ;`qB?sP5aF~qc{ z!>S;cmHAJoZd}r*a>0v`oWgPAw5CnRYS;givW#!6cd@*9n!7IfS*v@y4@Oa@K$t-W zRvP&Q^eQ}~2TW;ww&M<9gbp{g36p7fhv8W7y0DUaTEmNjeCn7CYmDK*UH(v!oY#dj z7NSY+Y+xHD-9s2#Lwgj3TJ{@{X?!Q5k#mU z2!2!%EX1wG#I|i~;;hI}lZdu@3nZb6NXv|0)9ok1#DsffwBE0wxu!5&bi^>6jK`?AZZ#y2vkZ8El#5}=wps*EByS84 zXi#xe#VA`oN1Wjr9{F0r!RQ=M2P&&EMh{wvUCsWB90iil#e`+XsnYHQg7>zBtY6SX zX(fAENj6%&+!a*Z(FhO(F6_7|&g}4PYw6Hvp$JkZ4a6Y{a98RlO$sysavQ|82Z<$E zfh4w3mypWufeh=f$^hhwmx+TofW|apAMGgXP%xdP8#$&7EJ#cNn=B_v`?WXx~^7fj-`gz;(vFu2S$ z|8uSZ3on-`tOpJf`%afM)*Puy@epLhlBU22KQ#4<3q6dmPg68f01 zi~?(|K492^+~VbWwGUV~xSV%wL@~Wp;Gu{Esny%AX;mXGo0haW8g76!{d;1Dzh`HR@U3tx(#bI$gqm)X9L?JI4Tl_0MV@1P}klc1GwP+@V5CG|Gbq z68W?MWn1unIWMiaZK8{leuD=m`?Ks z?w-_cw+V9P&cQW5;e>q-*%{$-j zW$D!M1q~*;e#T26Nl?06d+GJRQLWC5&?L@$w)F+;B@AAD)q~*Td9#q2Ac`E%BW3vEW(nSG$ zehT87Q|D9!B`xVpNNP<@7zkd{SG@+Q&Yb2W@C9RkyGWv233&OV!qFdC#-t(dA4XT_ zHhz`1<`#xu`&euL0ONN70#LjUZbmGG=ndCZ%=kzxb}Vx%1ySITKY59jc&IqR`K%8Z zmB~?we?L~>k?jaHV8AQGQp+g?I(EHbvq;6A3)YCRKIp(GMgb3nTJ=>*FXJ94p5xGp z9(>;DRZmEPx-}{$tuF{9{oQlxYwbvT*0En@Qj9782J`YOL@vS7YYYV-egZUl@Xf-h zd{lD}kePR~FVeYW<=iSw8vpA~oLOX=nL|WQ5SKDoZv}eV^om(jp?Ypb9wEEBlHom8 z5;dNwr$(C%~N*Qy|3S! zp4Zbe^Di?p^2>;o`$z7G%oX>#<-{al!aQdX0F~Kt=~a`$-qCaZk|f1y4y0Z>DA88$z8F zj&E5s2#&Eha3`%4j?s?UshnmP`glBM7k%9T4|@6+ZThXgb-{`CUQUOsIRTn7QBKL( z)`pi)8m@*}qf|+M&`aQBqN~H%Cj!OnI}1K;#vWZ z>*P4;;D}cUP5bzgLrku4Hxn>^KM$$i1wr@c!Qn2lG^Hx07xUXG!R>IR3%qVmv_bc1 zXHZYDkRbh3e3kXZ<&Z)rwWa!H{j0xsvNF!D$92=b$K)Pe!p0&vo^V1!}A z;r{gq!q#v?`YroNASQVIEuo3%q1eJEcuSw9KztcJx2`~-7>?Mq?`&xUiD`VM@Rp#$ z1tH}LguvAW;EL5R``cpmt@97AoTbNsJaq;s4e>z&ADPu$3SQBizZ!AlSZBLlY{Y!* ztI}Q~WI|>VFZqmD$>ic594QW>?e*SdLfUGQM*4H>#W^cp6wwA6o`6?5(Qa*2DuEe= zctTof(o=a@EE0Gjdl`gic?ae`ECKXqA*IA`xPsxA#Zi&O4rAT}xN^2hQq^L8g4Rn@qo)!KFV?HrFQ3njCKP=nK?8u^rr^PwX(1nNQCuX0K?JLoH!iCd z&}f$H;VBasFSCw$2ou2>wh?FJO|F$$AviTx>&^tnSt_5L#3tEOAS$wf)r)U zswVv24?#2MhB6|gj}`&BNy?ekPM8^}af+}D!a5XXY)(D7YG42iSL9IOk`nFd^=&v_ zga888`F_wYVt@f7z`%DDfC*MQfIGx|*@)~nW)!G=0A1g2PV^>{^8*I)eIp1nEqL&0 z(BV!U4V`ZnN!VA#lQG2NS((CjaiB2l1)#~P)AftQn1?r_lA)T9{ga#WRK#PYuTq5ASZY~oKEP{| zvYoHy{1{F3o%nGDBy$-AO@_Qvi~$Wv!N8B6kw#A$Js)05-7fX&X!Dek!im?fLaP!L z=I1$%3wRL?37PvNJC9_O(YFtBOlC5e73_Sk(uOVp?xDLze-{hbnO>zi2eY7^!&e+~ z6p>7>KD06AY|e!_WPF|NZD?PsxV^bKuSfJe!}hhenJgCl-`0e1idNEOLYeBRB%(I#%=3s&*JkSqb#KQ=HI>DG`OduP$H31tWaKSjI_F^oI_0K(3iz+CX z(`5S4{|I9I60La=)-EYT@7YfrB!z*5OYO&X8X?=qriHLa4v?l-l`c8iQp$VQUptMJ zy#j)eKWxdIf+1FK^gwuoo%7u%Nvf~jshO;D{EBvAWmx=zJ>RUXp_Rd8cbdv7)DK@D z^6hyeehxhPOEY~X8~~9O5y|D4aLeJw>xZ^De_6-Qez0^BG|reM5YHVJ(poEYjIF+J zD)sLBU??TLMImx$II-H0TV2d`Y$`PF!Ei#Wq zmAyGyiKZGm^b|Wb-`oJdeuJBG9v^f}<~izcdcTJaWQFr?iRj|FRpN4-zmwTD%wOwa zyEk=Yn58d71NMalkg~Rf6{S#}@7m>F9nd&0C(E7pKj(*Z{EgOF_~Gq`QPr`BXc@nh z7%^8t*^XKP_F}%|_WY~k_}j@G+X*YFW>Jjo2?{Pa_DCGAxvervt-oA&_@TS@`qGLK zXSkppiJ|ESd)BB2i8X`-VQ}^V(qSo7PI{5cGeMK}3l<%bO1YvgtaVpHgY;;&$v-r^ z@tw)pQGJWbj;uVc_!GN1&IqP3>_x9Ab`Fw?Nayf*NwPQT>3d)O7%v+JnSUQxe09;r z9$oL=`7z=X%5ro3-Yb&kXr4cW$jE zLiu?x>I6vSu@*~6lrrdTKB(yFY(6-LP&69`%9IyR&dAt_*U{9Fe8x6HcO^^>DI};6 z>Jro1)FAY82mX7bRGc=1p<&2Vgw6Jmm?JMRv-|{;gRM!dAEub-eiA@z-p#sgv)Ld3 z{i`XNrs6&3SlIsX2h1c2Z1K?@Jr3n$khXZ(J~E{s1MD`*?Zu)!L<76}xnQGV}9azv3}iqu6)@AehI{Wi+ZvnyXbHdc6X|2ayq07@pqs#O8VXT3z(DEWg?WQ`1mp}#RTb#sP z%SnR*_NU&=)dHE!BL?5s$HUnB(8dvnUM26ri75r@(qFr!j^AEyhh)7W=v>6w%f!QX zz5-Tx06*$G%@(_3ems=L9p&YsvKYR`?^3&bShlp!3vvjf!2 z?f26(cbV^Y8>uiL-|K$yTisjDl&{AeEo`qY`p{oN)HdmjVp|bO)-nqS&4!HU+{m=1 zQ-f;SjCKIzrH)50eZf2&s|?MuLLDQ`kCQj^khd|(pAs`vhhR3~G0DlZ5E@WAq^~O_ za=vvm_L3&1lIi7Inn~p5v4|_GL*T6Qz~eHK0+;jYuGL7HYJ#oSdx zM`B)p`NcyHAV-szc|LH$ZU+1w+WiqA8_kYc37Tv}z&XJKbHS1zBY;UPor%dC@yQ$M z$X64D?}bAbgc}SAS!#-)Q(ivz`CLo6+@#3 zJ6KPE47uS3+s(G^*T5&a1ucdFS1CND&t6ZDO*`wL0Zb=@4U!jRt}PvGu)rW}ZiQ8} z??j}w!kQacGeUQ2(gJqd@&qbMvIG6W(;Ng}A9Yo9@xE;!fhL& z*Ygs>Fiy9;^nUXWwg~x?DiB<3?E-P^H!AdP>SEAzIR!N(qVn=N;(Bdo4(tfatht42 zpbxQSN?DqtKbP7)Y*JH%o(DcFoxDIlAr+T8E-H-83RG{QxbzHd_RFX7Q?SdG+SbH$ z<24pF(%;uFyxuhf2Ww{SdwjwSG|A$`^2w1H1xf}YAUhD`4MiiLfbMF9Nn~hmK2;mB zT(Wz(jK*Du5UK3Au0@xcVb=8Q3%I(u&b@L2cO3 zBylbUfRh>kNCPBQ0+|xi|HHl;!nKPX6%rj={14uvE>gZ$VvITdoT2wA}T#iz{S3|o7x5%(sN=*GPOo(7jp0wp!&@oL1&hMzaPik=SItt?^ui(Tn#p# zTf8VfrBE=x8glwWZ!h23y8`8(-3aJZU@WKF8QugBFBAt5WNDSh83uZ9Ljjx^5>Lb) zVtmel2yv|0Xo0v$El|{fz6WH*m@r>Q)SsF7Ful1`l5kBMQ-E_qh#^Q^?DP(laWJY* zn?R7Hzly%+b#nj{WlVb<#7G(&fJyVY0So4YGEn)EE4GC-A<8IicuYs|1N53WXrXEa z@ktM3NW8K|`X#l`C0&$KiNGzAsS@2I{|2 z-B)E~6}T4I8C=BpT)aAB{9<=Rxh5#Etu`{s=Rf@CwbT4ZhxnrNr!5HV)T>-HQstiO zv?m|xcqk%#thx4#UJLQe{vx6M?_pJMkcHb=? zbI6iP0eew9og{UQgq8;3F6uO5R=%OmUz)3(PK<${)@W5Y-N*!FGz59Uh~hZifWJ({p4K>pNM710fg5e zFuE7~0;t>H#wzB0E4Ov~qBsTH5}0VU3s`$^To9HZyR>0aL@McG7K zpUE+{AUMefNil{QE4{r!1_`8TEm6$%kZ}nKka6$0bpCG8OU{rUA s!a%QF!(^dZ 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

; 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%0AF0*pX}K(M#wCHi4- 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%0Ao(Ays7JNl7fh*Q-75QRN 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 l^9inwflI3RFswji1g)rm$b|B%I? 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

3FU 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

oCW{gC}N-Y%=RTND=* zH|B?Diub$=mZ#C}*S7lklo`#il6agj`(|O56FdD^F#+>)QSNTC?3`+h9PJ_WiZ1y*Kk!Q=^VQaab6qk$zvn0S34s$( zGtYznzFmt?Z~MVQR@c@G4-4-_peDDQ?P|v*S$dQGlgZ43*{hl5$DcC|txnEn&V&1% zND`qyiG}Cr3w-=rOZVoYC@xOZ-lALuiydu&*ma zYm^u1D{$~JNMxL5WgyIxEzr;J)v`r3d3USM< z!;w>tW;3@P{J*AK@cgCif!*_2(}q4SEMY5Cm(SIm{V&DL|NF7x!;kqlws`n>SG(zo zg*dW@(2Z~;d~dT>kJ$b@oETHLD*}^6?oIcOw~6xUSL!cxZ`(KKO}yO;=uWnGGH~Ezj zt19xIwI%dkawGX`xuBzwDYUvpFdIHy(SB;MOy57d&$u^Zr%xh#^F0@QI`g>C@;Yxl z__!_<#8yzUCxbPsBRRI_dPT2}<$<>_HN^E9zX?iBX`6Q|Ho`eDqwisOw8)@Ti6?eH zWt3vg-}gK9U6Zqp|NZuoLK&|Vxd*u>*rYT2iO&5FLoD^YL_Ar~7vBiEBLeRY4eJ1( zJq##~QM{`p)`elm3AWG#J9B!7&wBJqV$DoiSjDhz*)YfZKwMa_;d8DkiW z#FChK(CQKy@=0A&Oen!z93+Eo2{ua_5qa%i!%8F?{1{mR4klq!bYo#oDhK_equ5R> zh~2%lf=drM)g*O6+dC)N+SXo7X?R z!pFDV{lrNDQw{B9Sd6*;_LFl2!4Z>{Mfel(mr-%bJVL~({IMWY5`07X@UNS0D(I_U zQ8&^4qyzo90`Bnwel(_m1q@N{48EAr@CbkWh^s|D<{(#n%TR-ntjl`Gw@G)Wh%z9|r~@Wkj>Gu(AJbZj0oC|6 zO)z+d>-gSpUu)J0VY%6x{KxUD3Mmi}a*+^3KK%@gis(LI3_vpw2_&LKmH4}*3ztsZz zoKTq(hzOat03nbv%`FH4#v0=F*uLCd#f?a7@Lzd$M4t_zY3JrsudprjuCAaB%`ThhPY#@Xx z6R<;Gpbc7GMQXaAFdY&aG5+I}YLWwzv71>T(&L1#Z@S4h>~Y$T`tn{o1inVz+LLI(AJ5XenV^t|g@BIpyo)djr+DZ_}PY7MI;(_Racjt3>2{U@B% zl`z*=7@$b=Zsj{dOx+&ai2&HKuMDHrvH4Ie`0_O5(>>IJZn{5FMMA*15fW?9-x@op zqKZr-0SXAe1Ll>7fQYe;6x=5w0*-k@1G29a4xjPAXW2`^>BA&bF0X7oa)2{e;|Hsj z&^NN+Vs_wGV?4_LlgRB~m#;?E(Eo?l^E!Pv3TOZP`CtCVtL%0{^m--IO3=FgD28XI z2Gqtl#%McM1D*pJuAf^*`QgUu1xI+zUa@#5u7Yn7TR$gfBQ`;aX0$zub5ys@sN)YOx z4=z>$c$Wgkx3m5Km!5_*ntVC<|K_#p`giY#0UW+L--HuP);j`z9Vs+REh$X0?#2hN z?`W&T%zTUT230}e=So=ifJQ$xv!z}pufL`k^{0l(LSuDd+IOs@r2mh~Q$uSZo64}t z+nPqwrup7^&qW;!-IM=EB}S$gSjC!t5lp&`ltBdAM$=BmF;`t+{r}@DDs}^bD7dWj6t$;LE~4Ny|TsrNXGA&O#4SAf9#0PTgc;^@4R}Hr4!xnhat09tu z*2H1j6LBQERVo&%uD%yWa~ez=bzKrecZ8P z_5r}zG(l#iH&CD{nanH5wtOVNeA}crk=b;T6r6z}A~2peGYGrIVzuoLAYeo~tv{Yc zsBr(E90l>>gdeaNtUu9wd`0;DVL;$OYfu;f1n%BHHCLNV!NY83=_MthQIft3&qhN%S@`&}*PT1AqGrkj*IkNHh9cqm)=`HdgnsaAAR|HF#<=YP)-$gFuRhV1;>O zaEt5bzos7+I$H{@9+V&zU6WC72em%wwEjftkm!i&%RN)i&*g6iZwlhj+ zQ*@p=LQlpmW0EqW`8%9o@GZ@3!yY_omJpmEJBp9%>=l%`SvEXry)aaUDaoj3n5=~z zVY!Dz#eSiiLUCh7)Oj@cF`e` z<}Dk4V}Ro&w5u|;**#2gC0@W_g^cUxEYX1|D$TJsmG1nd6#v1Bl)0}BUo^B*N-P`R zae@E%;RLM|V9hHQ{0ILq&!nX<*CIDqLt71MSyk7tXoj)5VFOW_h$RIKL-sVKfK`;o z;Si`;oqDkG=HVv_1np}T0h@T@0ypuXUF5z4x&cxsQt?q0)+<5>!V{q~^m=dXH{y^m z4$(RfZ0@hUN{2!4hX!Z=7F?2F3os^S!uI(iTBWQ0`sj^s3QfQYQc*b&vZZ!2)r0es z;RVfJk)(wuEl8&WOb@~AjSn)2+_}APli>IIS+<94Ski_p1k&&Q!U&^E&=`~}v89wH zVS~IhgEbMaU}FlnjQ$Cs&{l`oMgu0ZKCQ9v+P|2_Tx8LEEhN1WtQsiOS|->7J&1(5 zY|q(NxF=4~#odH1aR>EQ8aeRu|6sDG@{%0oLR{18Hm@iBXBNNV3TD8QiWO=9lS0{- zK#^3D>pxB0FOr9)nBn9xCH$OP=7L~Uqs4X8LAQIindf(j^43no)|<>J~z9MK4wKXowp1^*RI zLNp{(p~PvR;*fL*Okr51nG=zgVT?Y)587h`pkYmwZ5nlU;K)0{DN|hVu>dun+Y3MM-4#X+6Z&mL%XuwzA^B z88f|fDYt92YcXMef60%0(^Tm9>%=ww@j`2h@}PLRVcjTd8B@_mU=>GcP0epttEIO& zlojt*eWHeh=5N}LbHZu@lH zYh7*$+2^EA8Y%RM=0`i1U3QP8>YRGfpPM33N>s0MToYC@O*=NDZW*>qG4;$Jwl8$2CWbX zGe34h4Gp5#1Zl_P_Zxq9TdxJ<>KNmmoe5I(Gb7#c?^NWY37OaLDcZ@@^wSxcG~<~a z1!uxZF&zPyLXs7;=9*+q#u9;|95f!xZXlGYCZFQeHcV*PlV(aqeb?_i5sw_+Qj8PW zk2S_-lSVZcdJ}DJd`(2!&J#P+I4ZMEm%Ltcx(>hkAC*V;otox{aXtCawZk5#fnSX8 zo>rFpbh^gnBI*Nto6V`J&=#d}HI1KJmZoHOswQi*x*2RjJtLST_@weI&N7;-zH>Ks zC(uo9?2rBGCumP?&CB9B4?x+dId)at@5>|>Ak(nwgSU@ABFN$xNR_U)p?6XaAOC%~ zZbn<3AYnW5GyRg~u-WXnm85Oqy_Hnt^6svACUYQ#L>F-?%pa8!G*6lKibOxtwz(-vf|$XV^9)MjhII?5J> zSRO^D=MDY2KlX zgH~K+x_Hs#al0374fv6;^V(KI1=E1##q5^Eobjd9s6WPW{CImA=e3-%afdh)Pt9x4 zUBIGxB)LArLz|Rf=T)iP60rPr9PT2G$N2D~5wL&PhkO@$=dbrz{K-_1JlW zqbjDkux(~7oqeEit<=PwA?>%jyE*~m7o?r#hy57&<(4L)wX9>ySam%@g+895ZAn2} z@#u+jEw8dsX{q*Ugr}YKD21sBVBW$a;iL=x(dmGE-kP+ldAreN)wpFoQCaGpV$^8_ zf$dsp)!mP_kroPL8>?8ey3)IbIICEiC?JA!L*XR%bfyaMAFjgpqOX}t;xt*o!&Nrs zUdU-jcc?_tM8iLLUTB&Ph2jp^tz5v4lT*vSt{>E77 z*>Co<6?S~$jcI*T-qD{~+#dlI9g@1ZkLQn;%RbFW-$XiF2x(Z1(ibo_r=|8szON+Yj{k zHd&BYdpBWWg;MDcN;S6UFv=|0Z?aF3#`O>RtGT*kCNp(BXg*wM57ZG$R?S*sB`JHrc zPFn?5y4;NjuMo6q$jAW z0&k<|V-eu|EhQ28z{~*2&gEmCo@QouiaSgimB{w4US!dfO#w-=Bu2AS@eEU6<=6f6 zmDdq=w5Bglg1RpiPE1Ng`fd?W=v zvH>4)fP7H;`Zy%4>B*)y&cd6f@W4`dfTn+n>n1g_ep|O38IS-5@Q$p1=bus?n1a|n z+Pi5g!inyW_f&5rch~;1xo5k%=K`sN0sZ`>&jJfr2uwKv%OL`f-~mCKd)yEw9^fM~ z&;tsz+dZlT9`%J>=|Zj$Ay+U!4>ZtNN$@mylzwv$6>>!iQH?(Q1*Ok|2siyv0V#vsqcfX(rV<x~HP_R0_>1O0^8Uj~m#b&tA1u8<&CmJlZZ@DTv1 z!vnpbg8ofXfWO6!qDl2*C&Mmbin{7gHrO3ahXfb#m7Vnnbq7aagLprpJ!2Yf;?5MRRESq zw{`P~`k~;_%*{Pg$Q2qS9uXh{59mSwAc9A+fqZ#-r^4F0NBTu`t&9z$s|R^S^AiWA z-i>CqAIIoQMjl{vm-Q6lfJe-z_MmIv^zsJPPRk=%H5p%bjGTAPQ*K zKV@#ylmvK$01(^UQ`_8&+}!hh@}PiR(E%UPfF772;$$?IY#S%$ZuvZa&t*#F#nCgwYev@Ne%Pg z3}XWy@mSeE=?e$U3v`bjbdN4f)nkBOK7j;b{+q$cfE0p8G2Ie`hM76E<;P7^G~gpG zAPAVbKMUgyWSri|9K|nI+G-E{*~LY z(SZwc3HXmnSYRs-$lFX9P#i1^^q>Wn!U6E6CL4oN%pi5}pjEj4r5`h0?il){@Bl!# z=Mm1y-cg=P7K*;`Cw+>|LL!h2BB1@S7_EDha&vETbFaju6~^i7HknfBWawP`2LV;X)L9RY{M*f&+9nM0Eq4(fB?zxavCCf&J{7O}y z@Ylfx>sdG3eD+3Ch!Y3!kr?=h03?6~#0I9&c8_u#JKN>zJ9No)9KK22Vi~>FJzH_@ zbt-mjpa1Z4ybnrI@=uuz{D>h3Y`_CBJ`mkKdeJ=^)ij-N?V6R)Fe-S_V?3pO?V+uz zGq?_~U-q%_06facK12lY1f>81QhYY|9RHI%F;>d38hDg%bB_>$1r4A9J~9CxKeSpH z_{at1WAfB1ju2jOs$Ek@)X)1*h^J71=D-x8%{}W)Q*6)+G3W&vM4X6(^Jnc?kG))D zh}5<9RFf>Z*NPJOjYRFk0J%Zxh(N1|`kjdSq=*23e+s43cdzy~Rj=kYLN2pPw-BAM z7yat~Sp?=n!bbhM0<;n{Te$y>$A4J&PZ0!q5Q7Ba^|KKE1C_QZ#e#ba<1CbsZ_u-j zYou3w+f1fL_V=+1C%+Fff(d&03=)La&w>ZcSd9c-_d6FoMIQJZt4|W%rWLDnoIi&1 z?>^#jojtbjpFV1yy=F~X<9U(70YqQ`u>mO?K`ALmt?KvNUCJeSdFM|7&}+=D7bYw` zT%4So5{bnEeut~$upTUL{ z{vN!BhSm;ix8;1|NoVr!COpqYWf7UIRJod_P|6~UAZIW2vNuOE?FK3AF&Xa3fOl;l zCI9-)cJXod6}f@1K)N~f*OXQ~uqK^-xP`}~I$%aq6TdoVbG^f>Sy3k1q`cG3gsQ(i z&uz~9{`B#*OlLyaEZU=2;lys=Z~1779xswdM$dh=tel9@X-3*%9TBvYk(I`JQ0l`m z9+ykpa3F*06`z5bD-#VH$z|2RtIT7GVpx#F;<7OyaDK>pTT#z4cq~ZzV2VG&yqaan zHqPwn+NoncY@@eo)hPqtLwc*q#imf4_M*r5=e`eTi1rp-!e{kHR3+e`f<9R-o-?4S z#^aAsM3+odCjRtOsq(4)N8Tn81E%$CZhM~HCbK$4w(b+i%#!|Uu`pcV#)vsDW_}gh z)uJa%$0g6`2kV_?Ssb@!w0GLgR8!q(oRaJ>wx{=Bx8br!K94)cn3|K2-zf113dr&1 zRpcIu%70`#aA~SbxbAsUsK}D2ven|f6=kmYsE6J2;<5j*{F0I3|E7QpHmaq`&4Kvj z(#65I0W_#N>^Ja6RC&pia~4^?|NILRF%Txlm{6^i>aA#crDEFScyg^`x(pPMO_-$h z36O)Jdp5VGSGSKR0nK(+vl&%eQW;fO)#z03qSXoTiH3**PZX^s?tEE0S!{%ig>1-V)mD1?B=B$glb7nhbrTR0o? z=;DaXB3qDTBw!DnE%oGb3ze|*XJx?ANI^xlc) zf#{u;k=%6uFp1GSSUb%Zu9ZEd(=QjT;5?WORgPYA_mnk3_R-(Eo(RoQnsTp7B<8FG zVL|8Ds64oAp-BHCz-dj-WOt8|F-70HJrdB!bR5{`n9ynrI^$Q5JDvWBrk@`7T$`5T zYd~9ByNL58Q4_4ecsuj*Z#$J*%%yU-OiL#Cwje!l5~uHJk-;{8@|p%|kKAKHRj9uA zl%@NEyt2R47nllDyqo&X^l{&cv@C0b`Sk}GiN=fS)4?Z>4&fs-Up0A1uFr0KnZ^zuKpm3KhCTWGT( zCp{NzNBl?tBR3v?BErxY>as;+8$Sl|5KH7q*|#2*-}n$KOAbvUY&b#u7S1wKVLTzy z&{mpIg+x(6;QvM2TR^qht?Sw?P@uTG6ew04io3VPiw7(2?q1xXxLYXh65QS0-Q6Kb zu*3I#d#%0JfA-mDoi+A9@{H@fb0;GiBbo1<&zyNPA0hFHZSS`vZLYfeH%sieoucBy zI9bIVKw}xk#4cF>3L}}aVG1Y`8M?wq#NP-mBd(-{zjrgb&6}2Z5!1k<3A6{!gp}Bm z>o^$4sExkUtlY+ilU6iUrqZzN1BDxL12&Go>?q|t$x>}N1AZdr!j=`vrx3upR`{ps zBzk$vXc1>@T9Gst&XN9lt}+C&d&}H$Py`)uY^B(kdnMa&L@P4hkJ2Xg)=c#cp^mLA zEFo)5G}Qz3MpClzwV2}2O4VF^joaJCkF3KTK67 zzxMB%synG8-^mr+z9qZtd6QLzf`Y>39(Kciad3;!rcGa(y_s^nIHKUGZ#(nuzU{|2 z4WIZZwwfU17-|SRVFZ`XqCX?zTZxwbN#}2^C=rbF{x>sSljKK^q4c+=)MZs~zmYF~ z3t&AGU+XKFPIftO^J-mqF;7RX&((rX6CwP?Dlc;Q@;x^<*J`WU>d?Dsauc0dzMuvR zR-5_cv8`nm@*@=LCpjUF(vnd2B5bo0h;qZaq_)xK2**aH4u=Mxrm$AYu)(x!`8zeI zOadUKCN(@}Y#T~uG2}Z<3iREwOntrZV_4R8WM9+r{d;-< z!*z3A;F#6LirD2F%SwWvuq!J<`Wq|zOS#O;Pw3M`OwB3qK(wi>LSN~==hqpaXBoY_ zpgk>8dhae+dL?S=Y0U8i?>i5T+T zU#?}GJW1+JQ=HjmjPr%YR@joH(bSl`pavMMKqpD1yR02r_V{}7216IAX)Oda0&h{r z=_w0&Fll0a0`7b6dz$E+RJUihXUFf|a=dZ`vaaY|z4Qk*2w354k=GY>A8M6qM(8H# zY}=H$bk~ht7^R-ufDp#%D`1t@*aGi)sH4hJ9M;=%_&BBOaa+VpHs_EZM!|58#u>fK zXp+L3&Ao3+_N#t*Dv#?q2X$uKvQoTR9|P1y{<7@S4wl& z-p%>BnIF5B`^=U(Sf;q4`2dijrn{hYZ7`qJcLNZeP5<^pN`GuIY0 z^v#84xN&mTYZa`uemH*Cerj=_+pM^b$r@(x&uLr_UO^+I1kFc~jBbqU+6K(7+a1jM zL#J5<^YdvhHN8=H2S{| z+t9i`sxU2#svBRjFxuolrT&aTjfA;S*vIQ{%$()#kyg(Df63_)&m~%|$?f2FpXhhz+{` zA^$qOv1w>9aR!QV?-8JAS=H1sR+~qpvjqHpe^*3kH@cg?^I+-s1=ouyy{Yf*hMjJm zVh>V=-5|cBqaTjTme+&7jjiCyl4N(`(HqlI;t#sT7F=o}UA|I7S za%6~*5RC7@`7dsItKRsL2jsTOey$a@uoD(1_ho7qYFREMqJhS4$Uh(x`*N zTCh)S`uh40M!h$uE4&<-*V($sUs6iRb?jbue@OlzV$`E;KRul2Au-ajTe7~$EOpDa z%)>j!Y<_fcZfL}6u|(n=ShpK{Z%E}lx={0tx*tw!{`(a{|5=MZCgwx_%~>WM;gVGB z0VP6p$2(TM6iuE6hoYP4>Raj?YLZ4XJ-xO5yZ+Vn)emwU$(e(KF>6ugP;+=?q}#W< zl2;u+kv6lpa%6)MRL!4rT#jv^dMh_Wa9~~cz( zW-iw{`1G+=G8BYmjRE*>xfvPlGYjtDb}TPWO^7cq(qpc51hBeH78p-g-{#duzv!My zx960c)_NNa41Z+96gBt?6Yy3{9Yzdhunbs*PtKS-e+Z9c zPB2E|W}7oS8CYcd?Qvcc-Cznm1=|a=939Wj%3x`rG8;*p@$ukm^Xpd1&Bgwo66N`f zzX6MsGbqQXh_Ir*L{k31tqm zUs~3B$ATB!UXIZZ!x%o(d?J@I3cuztfueZw@}4GrxhQxl9+&`P2NZMZ&oq!$>Ico4 zT`VFZ;`eEIeLtQ|WwyyegC2V%y5M106$8};Hy1LkRp--q>7{0hMNwY(ib@v2;iM~H z*IAcl;yy4kO0|s=9GF(0b!V$NQBi?-dsiq%7OBY@))uAa)y_~H4B8smPC&o{gBUA^I%-tMWvm>y~n*g(_05h zS@+3F*ciV27M0>U8E8?-Qsq;gpso%4K&SnrAJuA@1-jXgPgK#WkhynY*gUL|_uss; z>E*8wSJh+d3(Np%`!f3y55X;y#vg55Rc}l9-ETf}1r8;NETN9l9Z zI5D8$u#1^1Ln$_#Im=^s5ZV(pUTz$z01CF7i%t7=<%1KP&7dB(%T!|R8j&S=&6P2A z!ook!&xiy65ZxWu9p^;b8doWaF;hoRdl4O(J-R8aB$~cz0shTAo9j{nN%zXF-Ct9Y z!5{^!Vb&%~;SOV;7&F!H2}HBpo(5d)S1_W_n&&T1%KTnt1ut3wGts^uu36cJB8uhT z@gi2AVG(>iPFMbTxQ4AL*;6||z4m~Go1J4RVzlcrVSgBx+8E+fC!0PUao~N7ck0s< z;Lv?YeCt2F+thvg5x#ss>y-PN7t93D`@Oh~&7Nc!o%E>h1Y(=$wVY2Xb*&%Z#b>w1 zkGLCx37Hs=ih!^bk+!Ku;WT+kPe#!m&TTOegY`+DxB!B(Gg0ag+hi{ffS^_5OY6f~ zwMPLdG^Fy2;OSJ9A>^XMi!Yn>2;iM_*T)ZdE|$cFEY--$f?r7G!7t^OD$U^M@=RrO zrI*^*I+G0ZOay)5BOOk+Pq)Or;prr_Z3(1N$;aH3;3G9cxCo zx6N1bs#i7m^2fX~`A&~-Phc~io;w9IpITKDtJieAMxO<`M!f{NL_Y$Sn%j6lBVIuj z%Un;#x3P8SX<~>Cng&JQVME-g6f;8Rd1{uPLvHfTRu7<)Ibe6|_;VnQ%-!TgQcr?| z)Z|J+R1Aru27MDBZN^dQoa^a%vzgXm`cAt3Q>rt_Io;8?iv9JXr(ery%N9@h72D!* z9FeSNL3<1jwAia#mfyIvZ!+^gQ#xBSBq|0f_A2b|S6wV`u4FdT-lNhIZtj3Nc8Hay z(|29JeQz3`y%cN01xS5V`QDV4f1QtH^)ker%MK1zF12U?o}+&FTHaA$v$e7OH+ z_7Yi0%yf1wmU`*SxHP75PpsgVu>I{;XRsWB{{cKaweAE%*S_W+a z5|z&-1}>z76&vP~LP6^0Nw*^5_@WF z#Ykyw4sPqqjZ`}tLe@v3_~c3^{k7kEB&da|aYaZJThnoTS{!lI%z8Ll+dhr0oBdwEV<^&^VpmHdi{G9l9Z0-)2{;ia%VnFsMhrp8C$oW;ZOLG_Sv zrkQJN9jW0`bDZmny`4SDDD80JAd4OO)yWmy2q~wax!35U;T36Wo9?swm0((%{j<+I zZo~|Y3Pa&7zs-(mxIRIyt&S*CdJQg@jqreS`bN(Q{V=Go6dYchTMdt{&0CyIHCC&E z!ezz=&TWW2?sjWT6MLP9>20o{4rF8UGB-cLHNjDn!(st6WW=!4T;k!HxwDn9*5I*q z>6}0cAW>&=>Z!seEq5p(YO?DXL{-5l-tdpMpRmbxatWS2wEm!J2K zSE;Nol7W!uJ8RE7{7T#NHl>k~HaTCLxG^p0h>UE2}HkkO=X z*P~kwFNC~B?w5Hu;Axc^+#`LuX)jL?P2sYK>{~AWd#cfban&Wc6OMDu?4jfdGLO*$ z=CTnk8>5f&zYm}MR$tOdub;nO2)w*sSv%6!)(NVP?YnT(my!!6)!6i!;Ov29s=eUc zMhirf$Tx5lgPbjF;{+Hj^|a%8w!-`P^LCYYlx^7^l`tPzr;6RApLAu%Q4?wo6vn2; zYEM+X=kt5rPs!6|DzzQ#q+SXkjo?S^Hn9c zHe7%q=bKq#H&;!g< z3m)cLbo!|5IFV!Iv24L+muDAX-#36eNMMVbobddYbiSK(3*w?tSJ9GzgI-;%i;;t@8L6EaazFGIk-X^x#B$^GbB znUJXZ(w!jVg6NwzIyd^~iCo9-XVe|dTqRTDz8BF6iiaphx7rJep@zeK?r*7=qEFY$ zxiSi_r1p?DI>F}47tJP8RXv{K2C2(Dg~*T<$@CkQ0`(}yBQQ=-%E7+#5w(-5eb$`- z0$YKu*(}yl5yT7p4V#}gCC^yJ3`JS6QF|;ZiTJ|op#bdW6f?&YreJs#*BmaYcsY$E z(Y8dCx!0|2ZG@wgTU&r1!NWwMeI0I`ok3_@vf8B1pJ%8J@SFEyKGr74N zz(Og(?Z7w9r84!k2eNn=J9}t;aFnrv;k|FN#8+QJeL6 zWvd?A6vuy_Uc|4(p4QKO!~_#t@lxqj5#vHzlCkuwFhCYtV|3;_mrsg{&*qMF=Vt~n z%~sxn8vV63$W=8zP=#XQF}j7JXU(S6!&M2Da%In^s=8LCdCHVLRwD}Mwi zP-d7;!7&p@1Z4z35Le6?5J52kPwcMk&pgd<;l!*T66K+C?7`1Gr!yY0rtY@U4GA!z6BTZT)ubgtXyW_Sk7FIP3@aBf7+i9=66dD+1b* zXy}b4(ODRJBt4-qm$#oY}5-Q>k+U*X}pAw_sbNXgj>tOTrvrA1x zM|o7_arlv+fn~|eh^Ic{Kyx4(1;$cX8IQBv{tVZ2arrd?0dfB#R8{RyizD$`Ezw$j z>Dm>M+K~@SRKG0sXTIT@@gss#0suoIr3Trv#q!0<^H6rxCwQ(n7#vIQ?at|JgGQ^j z+;&2pN=r9oS+YjJefCd1nlEl;f=Z>d*(!1JM_&tOK2Af>&A{+ww=8o_S|9D>V>Nd^ zs(#)0lxQ38s%iK}6~A2>VuuYPAJYZ(`T;hCpC~O`fPSIZY%QxI1ao)1e?K6HskJj5Sm+kL><~>DX^fSJ2}v+`1Hv&v%+2@2|8dqLf5FIr8uN zwykW5M8;|SHVGG9F_X}IjDjbdJcphY&xz9ly}NFw#lLltw*%dK^lJ|c=EruvE~WE5 z?0kKAYdYWNk3kc_$_2l3E?4mL1Cg({a76fGn=i8mGVHVnahkuI$xn$p*p#1*^KEdn z&eXpLS4JyY51UD-IzRURni4T}I9;0}9@0j~bp8lL-$$q>?=P(4Cgpn=k1=p&HEU}r| zQ`R(KENTX`jP~K}>3dwUwBF;*dDO(C>8D0jmQq_%cHiw%yh!!GU|hEOKQfWMM8&*F z4tU2ta^k;ye~p0`G;SS{(bR2^V3zT|yFLBKE0*VbrPd*d8Y=^@n;H)oxZbHu($_4` zA9Krglk-?hvR22Mw_UnO%*&b%o2|xOII?WLz)oT~f9KQc$oevL+5@FVpWW$H+5_#L z?DjIo=tHti_tJ#iYt=IfDK0x;hE8FctA@@2$xW2*i@;4{r8kVKTUraLO|E&vcNSHG zf~c4L3~G|uDD-H91|bKKbWnqhAm1BqW>TDX5f|U+)^xy`Sg9pYg+t*ealc{W2pD@( zzG=2ZeWyd|#%#9MNzW1={XlLM!f(NTjijUC$Gp^vqso@S^efXwLUK25WhQC#-o6J0 zWCnyto#^?V$nrm=e26JjH#VD1PI1gLO8?&^+mih*->Ah{^3`>+b{K%vkZ~CmRS0D` z=v@U`#)p)H*B=#MQ_Rva=UjoQu4IzYYn!|vHvY7O4QW(kH?CJJ<1X26%NT_!hF6SK z8$3aPyU#6B4WJc!YEiAn&+BBcDgL5&n$W$>5YnK5VPE%K4E*ACVup+g>J;_Jt5kG% zP>NGyOjJ%-9fyO62-ZVEy58Wyt9E{)mQ zXKTa1{D!mBCFu>OE{1eq>Idk&cBT#0bA)Du@{Xf(SPNgy4Td{pi@-Wv#7CS}ALkAJ zJ7SA~+YRVDehWXSJLt#g1pwJtWz&~&)?7aV$f8+bUcslF= zW?At%b=5RGkwk?h{U0Bq77?f49{tU0i86OG!rgZAn^J$}3WCdZ{MxpG3v2sF9Q6$d z!`YgTL~U}_rwOR;6qjsznU9g(D3@Y-oOUJ++RCtw^ac9D#E6G#@_oKMIHMI=k?$Po zX>#T=OyLS`$ZCR6#?g6%34Z$l(j`h|rm!1*P#Z;2_unUqFx5+!{^-$ivfhU_Lr(Rw zc~=l`0oyKAj{)1E%#2qSNXCpc4d4{?*%UTQ-KZYB0Ym|8c^nk`pJZo<{CwWAvh4L&7 zXq~-upND;S4hMqz1yF^n?LwJ<{~~Wb+0J-}6spUawiLEZb*4fGQwTPlM&L8EBmhAo z0l59LQO5aw)l*vw2N%cJE>3QIy!;vIBxC<*Ycxo@k_!A>>*ApKDcDZBF;+GEjQ;rU z8G*EG?ZX@IAdx$mKi|zgpsy8G05`+miJUgO#fJKC?XRBr$e?tK)|4w_0}QKe9XAu1 zh#z|{bZb;z9i>Lprc3JRBySAo=rk_HyPDWXOxn(IgZ=YxM_~I-u=0fB=H=b<;6s#; z8&5(0>65^YC(DD=RdbN#A14CJLqOjJW#&jrx}Q6*B>oc0pwWt=iah7(9??wN5Pw+L zI(xM_T(x=M*Y%8^4*oDdcbq=XaTqGG;8JxGXR0B<-n(B=Cm&=uc&9eV_mQ;L^`f_% z|7iaElzgK@>vsFds#TU~W2$d+N@6G2XO9q~hCVGb63&yoCCYk!?+-CX4fzFQb^a4K zW&`SrkJB#%ToL!^?ZY?3*_gkDc{E|tvk~RxaKR1=f8aig_xfjs4Xq}Xxt3>xy(D@*L;e+lDgQv_x9xMytTWbGC)!#xOS{+vSFq z&$msCr_NeZKPVm5UYk$U7U^EK=}Y6>YWtN$*#qk%hSxi5`xb`r$*{H|4nBwEw1;#H zS*%N!*I7cBtm(%hZ^xK!d)`_d8oowjWB+f*-L;>;z(KaU84umR&P;Ay6~&u5((_9$ ztu}gQ0L;I6M*(*=9LYO)w4axqVwXFPKY#VC>uCi{jPb|^mip<^g!^1vA|AmsEb+Xz z(o^wDm(z%PrdOkBx zU-v}bZtQCvRh!p$(lDSoP^l;OLSfsP_|46XyDN-B?=PAA)q<)rx!VXM_1_hF?m)i7 z44Bvrs{Ws}zut2W<#bzZZpgc$1>LBDqU;i%cPr>Bt;tRqW_h<&j_B)2NfHB0vSuBM zKin{Mw+77Dp*`T}F@3xd`8zs)Yc{Z(($WV7t)n-@yJ3GX7dce^(t=Q^N(TP)TRUL7 zSYFc)dV%Yg%u3{j5C_!9p!=5M5ugMcP2`{|F>}?67Dg{~50@Z%h2?PN5?TH#6Ip zR8XKg5*HWK6L!M5yUp5@)k|#E&MHp< z{SSC7*pNgPG`myiiX!luKFHiPT5vd!-#kxtzy%K_PF>ODgmyvf; zk`qTb0mo!(Xhl<5K~yP#+pv}~%oo|swXcu7A>Py%iRj+={|PWn4vFD(PPki~LKN$v zf&~9yfh4{qrADi#toPinIiG;3UK28H`*}JJQ%sEqxGUFT z1Ap{35Wbn}AjcJ%MVDX>5@1BoxXeoat=`$&MXTUiLf}cDNfX(tY)qYA`F%>|$XVF* zbw%dT>brC7zi$-_n5R5ao1F=7$N?Vcu@!Rh#Khhmm+N`6S*7(xOx4?_=+kk}_EcH{ zzQq7ClM-TntI$Mx!zuZT=G*RnR=`0seEUC&;Np;vq}EOwBaG&?`@Vur!9S=N)-?b^ z{$FO%zUJR?vZYURvWZ>BKsXT3oHkY%o0kHdo6fCp6?QO{1^!1d6`6nF#1~E@5cMLM zPgnrHns!UI!93I6T#+hq4=ILbar`kB)?J5-DBeNcRVjY%Sz)<3vV=>O7=vW#7?t@wG=qij;;y`hl;ZJGmXrR zdhlg1SltCBBPimMV)LQjGTwceqe2vltNlIW7ypkoesImdkZ^?%YW!YPy+u*Defabb z$dj*QDgDuS1q$*%VU%C<)H&*BG&6!k7aktsTsz2yINa}O1GXN$w+kjooaj~vXE^ZB zRL_$c_cX}${LOZ|huRy|PLaRXojSj(Q3+x=vFXHqbo%M?c&g>I^i*O{X>{L#qe~=!`Bh{C^YJ=0DL20-%VU$71{MV=H3yb-{1EQ8{BJLKVZ=n@U^Ihy_ojGZ*Nx^ZDy zR#=WX1%%=&G=~xjoS}^h(-FXb!CG9_tI`1V#G5pR9&1y?C_Lbqsb=4NjrQw(`x)ie z0XtCxVrf)1nB|CdwLDJ8R)r$j`qw?|pAdK?B!#*|YY&1wnz~d3vV+-+AWa89h0s~! zTQS>~`!4GNl{FK;S=qDtBD1;$R?zG`=ikLUWUSBf<3hsFe-nPQXnE}ZrpUSg(WL*I zypya6WJU?Fr3n|+B|_Me#|!G@!s^ZbzguqM<#R8%cJSKxE{5Yvc-I_cHJszxrWRS1 zKE1F6geLz_qD1d=@WclRKRo3BM$`=k{4pTBxt9osWg#FBXr1S48u?`^cbGtuEf?`9 zXX)SYptoDFoIJV6SHl5UdP2ic3eCXq)u85vCJZk^we!>I(A>Ft)Q}r%Q$|is&4`=C z9@Xe!R3|!?l^L6P5p~niz^PkRQ^s-Gt9&5^bASzW_!m^=Zf0UV|1Mv2(yj*rH9bayd&UDsEHpGp-5iZr7aB%5wng#3YYbs0$l@XGb_F5ZkP7CEmdu9d4yW63F$>k+e$r} zzEnObxooy6s%^a=^yIq1nOi|vGJVTy5aLLk{ET`RH@4h!WrbgJx+PoZFGsi2fMg~H z1k(YE28cL2r3>(72VhfwNm|I-2=h3_CtM6P$b=gNPA2p!v zQ}Cglr&0K2+zVx{tB+oN%TRr5Zz3natml>i1<2jQzY!ecfC!99HLt;!+eFlD*JZ5P zJ-seh-AC-*Rzz67Ykmnf*1J45Uc$9`gL2tQ7UqV;tGm|7((9bOFZkyB9O4=w@~0K$s$6~J6Y z2|0(tN>8xLsK7(v>F_Kg3NsF%0mZjJ@X0GIln8aO4cm&34&wxYqVV;yogc zTUQplr5`l7Q~2nr7Pe(mMFlLc`dtm&3rkzB7aCuSrsUd@C9kc_>S%|VS;sta{<3eY zdLrFC{iAW-RwO0lIgh=isFm<45b zB);UfbJu&)r`=UbvR3 zo6kbDGS;r#GtSt`4R)_|H6H_Pb~@TdAsUaQ8zFa>%pXZ!tINK44U}l3$FBaOTI& z2*XPy5E~}FxTv@J?j>Bt6bbpkzSJmJ-2_ihr8VBlGr9a8X`T?Fome3tzcKs~R<48r!cX~FqQ*L=xr%^X#*xSwN+C{IhH`Q| zTd;z?sD-XoHuv>31kkAi7%mED?>~DiA6B~ajX&tnJe^#sOV}s0)I~Zr zsnrdwYV>t#(G#h0&AT6|>C#KVB_wrY#H#7VJk>>lZYysDW>@kEKAYUa?^0j&@0@VT&+3JPIentH0#2c(l@2@ z=O<}v9YPt>ADa{{4nEH^ZY?vaID}%S>xmnyOGIJ1wu`E~I2LC_p;9J%mDPx?m|jx103}nqZhgq}{v#7&tKU^u zPr*12=gp;&?`s1Hhw5^sj)>>+VZ&sQ$(^;gN0&O*&~tDSZ(XbfQTzjTS|WvU7)7~5 zFN%HZl-<%X@>z97G`Ac%km!1Nti1@=Vr#S9)% zLU6fvKMD%+0$IJl^*klNQ@^Lv7gVO?ekrQUn2?2#)faBBh_&^)dNzVzEr`zgF%P5; zCuGu20`E}Gjf<}Oh)7Yps^m6lrBUk)y-BSSMtY4i9iNGwf2wbYyzXX>Z^eh2)(=fR z30F5@w^i+pAUHPKg?Q?|0J=ZbSO<$VA3~N!*Bm{gonAHEkAXEq!oCtq?Pd6bGHOiqkG+2 zXbDtC+TqNrH^7U4>x)Jv6x%2H>n`20TU6I%0j8-v^QiIF=u>V4$t_VXSW>4m+tnBN z$hj9uElgeUocEwDQ9ojV%9|S#p;Ay8Xcjcvc!RPW($wtiUB57zN%LLnKLSA-tCX=M zy(rzZ_o<#EbMo0?udNS>kJu_a5|`2njq+J-aM(KG@}8HxgNoNHCfzeWoqwz>U4O2X zdhfJKU#D7sZXrIxX-nt0Gr&nVR_oTDdbtP*{%1>^9OwfhD-{n5ll>NyA#7^+Od|Mmbxyx3Hyd&aAOik zc{ha`&We4JW5GP*m|gBM#cKO3SkY3VRgK~gl`z7;8k7VYEYiLKpI*z7wF15&xdbOh{Q3rx@=}`72lDtm^n6|sc|x9 zeEeq^ROBw`xSgujLpulV03mh?o((Mx${ZS>QW>x}62s1iPDYFks$Fk(*={E3y#&KD z$2O-dFTctP3|uU6a8vfFF5Mk0J=*cKrHwM>U-fXb)+Usf?wFh3s}Qc4ZK;~y&j7r@ zwVH8Tiq=CmS9jBFtjph%^|@b?MgQ2#LRywP~)SS@Q<~un#LVIO^wy`G5-I4;mk~hIs?-Xj= zRaGuyk;%{tha>X?Goq}3NRK1 z3t*sjPQe__Bzvfdt3t_#P;9ZvW*QZy(3!9wuILuI@U`D-0JH#Xv3%csCA4$|pkm9u z5);o%m@J)mu5W=77he3Kc#f}09BxEP$tZbruDF3|<+resaqiFeGauL;2^I zw9Ou&prrPpCRbNZrp(S)Yq#Z?JvH6vYPZFLJ+*YUa)w8{C9!4pV!P#7u}{G94;;B% zX|FaXMjXx;M0y%sty-<}2JD@(@A24s&@K1q-zIg481qJWs=6dtmqkW$RHu(}B&nw+ zgOV4Vs*7;p7Dq}}hYusH@+W2pwOS@lJ~z7MESie(Mih($FNPP4m^cxP$mW=`rEugF za)#z>tI{h_bn4w39e_e>a^UsihzR_X6_hR(B>U(tF(;s~^$Mq@1VPLS?&5|xsIbIiU?|CFkb63KPrn5JE zpGVfS!0HqAVi+~Ato_SY8MgT;tGz6cBD{Pmi6_D|jKz}s?)@l7jx}4EWiM!is}{eH zLw`Q+OxDx+ut~8^f9p`)j5|6cN%WlP*G{WZUIOMelR$k6-Ez3SORV_&7uq9<*C<{gDMlS|(i zi!xtaE2};?)Cq=rY19wNXw!g%O;ks?gLrjn%)p1fJH0OibR+jdFtkR2d{Q#ivpvmC z(V)D_+0R$5GR4j&mbJz{Gbj3|%PZBvM&>nJW&YE~b$tLZLx>lcYsQ@6~D z0djr}`5g&U8bdD{+x;3lZpE4}I?-D$mT7o-$q(kcEsLM#5`ld|YAwk#sZyB|#~9)_ zfpy_-bVHnk7b+BtUV+u|pj7py1)4g74HXqDqaCCF1di40lnRcO(TdTm<)5f6b_!{H zFc4hr>T(L01KO$EkmlBKh89M@UK!4_ghhNtuh8W%Mg870ra#WzV3416C&Mojy>^Oz z>EO-^zg#QNJn`VB-@$z!Y_(99E^(Gehmq2(;j~22bP~OCGrqFo;9NIcD`~VO>im&a zgZCu5|FgS63V+p5Mgf3v&HQ83;7UlE*0dubI7O`^zhqr8x8OU&l5@|KcuZ6f3Y&?& zs^sHAK{{d?|cE!}mi zkENI!;Nf)F^OTPD>NAPZ{ws$+KE2N$W{7$zxe! zi4%%XNXXQPo95iVmVY~})QI8**Q#2d9i2Sw! z-<>yzl-ZpZE5vCj8}LXe7<4MCTG3QdNDxQ0U`?d5HwAuN8p#>pOBvRW=PqFlqOvz( z4a%GJR>(l}7UUsI!O+4ai7e}hvekDXCm=qJ=v`L{@8K#zR0M+Oe-fWA5T1tIWWzn! zepps?GBcs!Mb6(s@<1Z(qdxzd7E*1)ArN4HZkiT0wytxoo)&aB8StbcM&?J~ds!6NTiA6P%VF+l;AL zpx)-mb~WG;kjNr;$z8C8Bgy@?f@;dA3J6pZRZIGQ@mmfBaVmd(`dkn4IW0nt`-P|s zUU5=&^Uy}ljWsW4=ANJ=fL*FCfO_&|ez%2juc?b)c_%yjlf=7E(NMW+;uC<(twIJbBLRAzIE5{yRWAb` zvC-vjaket3$LZ2li^YmS4_FWOTg%{hf zw?>ivFmZ|7;~TUm+2M}5Ota-P)*SRu+#T{WQh6#dN!?!^M_UPcxOhX-Et=$$&w@F& zuKxJ$Y^%JWPmf+0nxGO(re7ETQVll)7xS-J4RZn_HdPS1S8xuaQ||_2+INR=Z+54J zj$~&8kx%A*Q3_-~VOVrIIq1PD(PL}T2+W0{?ao_|<@fm3v}D%KP2IRH3dreTtV($= zU9f6yWYF0a!J?CmTUA zb^226*K*VR50TMwqwR*sQ!!GlRaPD3$(etQsUYrPq7pQ<-@$mRaO4`{MbbdkR;Q>!diV-o{xz8M)iMqAdb$8F~B|r}m zpXP*6dIc=m@cuQidi|ny_UHFsOQYtL?wio@EQSjF5H|))B&#^&VW*pl8%y+9|5_#N z19AVqDxHv6>=TIs$s7HBzrs*H|m7ZmSy`r%%p;U3Zp zzQgnUijv3S0_%JAiJzDDL~xrx=DbI`jo!=h&F_1DUEP;tx+eE>%%72R7g`B)@Fm7A zbt2l%xX2$VN$?4_0t;BJ!XbS!N@uLf_m?!7<%n!s;F|ux{b`q+t-MWVXl|8(lWX2T2lKGSc3b9$0=<28WccdQZ~_!O;3#m6BiGCk`WgUT->UK65;!&As-rexP-Gr%~uX zLz>sv$jw|SUAAK6No#e_+i86MI-|f^`K6-d&<3d;{g1Q6!~?#sU9C7AH24P&T|BU; z*TvHONllLkG{Y)K`*c0jRJ3ps3>i^5jmp~RnLo3U+{pB{4$O1nKTzqf862k$Yt<9R z+Mo_|+LNC4LA#)#>aymo>+<;)x?oM6$&4$A*%~n{BjOlvM z&9AZFI7d8b>8G*xs{fY=XYWs)TH}mV z0o7}-?U_uKvI&wm&yt8AwUPkW!fobj|3WHU^86W%``!T`3Bt+l-UsU8d4*3vK6_^5jZIyMY1_#8rlWC|icMO1O(s8jNcB~5jPi7(I;WP%~KZm1P2oFds9RQSN zP*A;@qfu0OUD(4gG^i}0Pl)fS+S$W?k({}Zio^}Ls9KdpI&k-M1!xyQicIx+sW0$J?l0~lCCY?U&GvAc8PwU7AZQ<6gC|iOoY>?M2oXknMmM_^aJtL zKU0Jm{ihi?D!o7K|KH$~Q$S?s%DkV|agV_D55eR2$*yt3eBX>(WsOD$hP!6GUBNoq zPl>88JAcV|d3j1KrS~UA{=P^81$Lfaln~y+X= zIheISZ}eJ#^fwBMq9YcKzc7}F%8r7(E0z+;yLd_AKP64j(ck0yrpY%VnUI`9LKY~B zt{-N4%wIRVTx4ufUX$Aa-IFQoquA)2e zEtX{DX1@XvcPK?ZPMIR&TwwriK>)7&2X62=6xc=!@<@|IRi=ph@z7UH>sJ9HhNCcI zJgexR(#((x#LD;7G9KNEpcQ$ZF{k!L!zAaO8>qz%K z9Gkb`wAm!WF!slYzgb83bxyu1C6A3b#%Vhf>V99N*%YoV7<-t9)Bhit&#!9N7O!&G zq+}bUB03)KcP)+NQk$QiP23b#0%cycABv7#EdWxlY5{6)-cMUcg4Y(?G1vRs=+{gp zG7#HGy)K?ES>lHT={7I3HeMhJFmA07Yxw-6hQ-9w&A`p`Qh(0X#OBUJxAK059Ky5g z+7b}HG&2kCO~b(K++V`*QJbn5XGK3e-iPmwjl~arx|Zl#UHi~WcJRlUX@_@E@LGS{ zq5D;RX5%`%UheYn*#9TctXs4c)LK~S<(xsrOOPxtVnh^x!yA^qn_ZR`Vfob=HwSF+ z*wpZ{lCzmAh~Mek*f~0+;Oo2bQry`~l`wrfG?nXBe76yw$FW*UJ&{+EyovVu73z?o-Xj2ZdtxPQ4_x4dnm_t?QH+oO&EpCYJvlbKwS0p8`mNVmA!)eXbg3WvbOO3CQp9Ut>Xw|=<4z5R~P$QMH!_Kz;su|}wI7W)P5%>TF?5=2_%GDzIz z!<2kDFHQvD-TyLB{xyI8%PdKDM(g>YooX2ExTF8bGh#|IVg^sQbNGlD5M{j0vmS4} zn_J&_X0-la_B)AoS{~s+T3$#{8&{VmG)tA?^*h7W%|x|4vgq2(=z(4orpSZ4$Zt{L zMkhbeOx7*Jt*g~jrK_%${{pqbEAX=PQH+29)Im0&hMU@*#iYI+gL|Akp|-JR zkc3(h{R^msyYjidaOqy;g7||`?f)<%9}TT*z0l^beJA_oGoq}nm~#ioKchFXBfDP9 z3MB|YP;al)b+xWJjQahU`y{%e0apURzAP_vM>CrY{kc$*G!uSpiiA{#d_opo+ym{0 z&~y#<2Q_Z?&~XLF)~s#+1Zs})s$Hi~pPiuG(DxBk-xvcEG5 z=5UgU1(<;(4r`kr8~fLMUjNl+UVj9-Z&VkQ<>yp5|$|8 zJ7sNT)Zcoo&Oos*xec3~556M-GwWfU?5LnVFHX>QfY1-*>-ThKXk`D4B+HJG&`-jt zvLy$>R59_%(7(MbP`%YMh^^cH=tsKQS3-boRN0Pe#*Vqm4u^g13W4t(s&gWC7_GY| zhTwT_DgVdFTmR)!nk)7XZkL=9nmFX0T&d^1vmH=S3o~HX*>g-tm(F{i4wA)^DH>d` ze&;Z(8#@S8RTafwm_fXE6@M{M6{SBplzPc7&%?fVEeudzn27@OtNnjqG6taQtmMVr zZp;=~o~t%_lz$ams3tv`W&DSx>D;Z7JDMu|e3lKs&ttu>i*vtjgiYe?)6$1aM-&Qo z_a?Ln&y=~>HUE(I@(YSlzZlgxX>CiTrc%n2N-IN3D>X_h z>h;2I@^Z`<}C=s{=eP$ zw1gO)=j&h-wG`PF|EBkPal6)^mymFzyR(#ahXvYhK8KBDOK9-Sr6{d5n7De7j6_Ve zybS(Y9b|tqx=o#N1lBN7(qyfIh#Qsd?&uWGjNBGg?Eng0cK}7yE1=;=CHa$@qZBV^ zH&lJ&!rHoG0+G7km-vT;O)D>sDT57e(|S4p>9TqB^jUQJ(X1l$mgj^1nZ}vfdE#w; z(5CT;Yb_{T75BDCq_+FeUhdkL@%8fZFAFgV1|+Xn1>iN^C@4|}h}j>6g_k$$vT5}% zobO{A_x)BHyYEPc^`m=bj!)R9MU26U*C?P|^LN9WRLcbZ>!f*3ziEi9!(X~RtK0E< z@6T^k$rB={Iib8vtoeX(!>@a1{+<&`T-!WWRoNJEwmIjnzZnE*DTAcvw%=f@JJ_-7zi-lZfAnE_T{H zvub5q;Trd%gQJ6^r{j*)RcAzUka*aUHrf%*Za1RPb@$Jl)m^ggaWX^Z3T|H9bS)p7 zKypiMZ2bLD1DJo*Ha=3Mu&ibnsvx{b1~E+b+`aS$e*(SsT}Q-Id+AE*%29jHj`}J< zn}jNFG)YRLdqa0F;4VnErfogxE|&2yBA22Hxip)D96H2RhPk^Lx#l)VwY%#g*K}>! ztPs<^<+G%vVL`Jqox#h0i2A?L^9A70!o>AjG`HESBj+b;%Wq~kX<3Ly-X?Zazz>rH zp5Twh9|htZvb<@8E}Z-?Zx#f>HFJ)j*QQOPms%DmPs|edxK%x-vw68-n3YA_uI6@& z`C-i}yX_S|HqbE+1sU+9^~7&r0Wx-eQTaz*uV;QX(l7CPq(_1 z#Cq8MapaUazJKFn2@#&#sXThV#v%zk;!`|#4Y^*&$&Gg0$H$U>9UvDO-NEn?s%z#^ z7;IK|Y_DI>J*^vG@tl>NuATLeW|MG}x9B~ZIA(I9t&LZfQyFn<7Jvl+K2P8A06IuK ziS@6a$y*6mj9h_s=4DwRBWl5ot^}S-)1h*X&DeH_XdS7DlrD!Ldf?rVj|$0o)O{}B zD)#Hng=DO^*`M3AaI)QthduCLjrPBn9}Nn6nY?cn<2OA?7(dmtmF+xkr*#`6(s56Vcfyl6&bNtdO+x*qRePoeWFT{@ zrN;_VrWE+pLFXm|*cok`J2AEtuKQeD#s1R@@6u>gfv53~&dgTB__v)!jF7juo76sK zK~p1wzND2cL-=;tBcaR=-T4FmW0sgV3x2afq$5{Vk||X0v@IULrZq&q2{(ebNlpLJ zt^!YV;1Tu);pn3e=5)_v=8bJl^^$zMwleRCWOJh|Q@0*tz`S27-V#n=!q|T*{;U1( zrZ7PkAcZdryFvm|jOc%(7j4#wWX~tpW~SP-=*FKcwHj|qOqb@FUxXCc_R21A=IgHJ zV|J|uyASSq-Z|fF%2GSx$~I;GdbD>VBNwjQ2~Mo@5+c&Pew!PMq(%18&|u|cdAkjF ztw_9L-ib9_2EXjzyNlkf;;7s}ekq0IZ>FR#Ra*D|uCKVW8M5Eab-t>FL%t;XwjL!o z!|D$|hxf~CWER-E5Ujr#P-EL&W81kDt>Mdi)l$$MRkdcYqU~(^*rgruP#f>rp^dBM>iEehoHg`(2N?W>Jix(i=_u`e(%=UPPZHGEG&E2v`+KYL1`liF{LRivG%#V%M<7 zr#;-Q)?U_e-(6X_bgD6UJuK*x-nJX40U~wMURZsl|D(tO0=9QfTr}ES9aH3Ui8G>k zNRxrjD1w7c;n1n5)Zc2pSBpk_l#1SJ+8V?}Lj&XBqT>}ux`md2jCfuhT`p@o&j#?k zz|U49$ysvBYM1$j%i?^OK|h{!OGO<&Z=g$ox_j z**yNGD*Dv+OI3U`Q3e(XJt}uGB{zES;+3Kw{Rf>{%51c9QC#lg0y+(Cx*aB}o{u|K zR6RsHYM8mf1w7nk(u|5qrPW@|G1Tte$)Oo&e94U1=P}6pJ}H?|56;aA)BqoP^y5?~ zZ5cnUSxrd;_fWfxKw4Qwrde&*h;=z}eT_eHX{Ii9V$V~gE@fzcE2&t1X6*)GJEtLE z(iTkpVc^9D{R}V5i|^o=^r!5m`rDLfM0l+AK?mb_G06x46w%q&#F*fc{9YffL>W zFM44{OHboXtRkzxzD8EBQX4ql`H-TG>}e;^^)QJ$I<}fj=$E z>TLZzE6b*?W*y_hp*{Rh5BQy8gvHg!L4Ls>w)inc{8>RFhCgh-inWx+XEmWluA*9} zU~1a!zIE|bMjZhgVs*+R9D}FrN-)f zd8#?g-JH}$urt-YfV7&pGyS1HVwrDs1{y}48aJ9WLbvtB%CVmJE7Ei9%h;zIpDsAT z7~UNvT?AkXuSMLGH^gr#)Od`|^zcUEk+zz!H@4Ms%9|J%-m<52Yp2T;Al#c|IJ9>A zaHbAS@-$DsW`%fo@L!I1HZDO}1K2u$g0{MsMZFzGLO1&Ic4q2p{oaxfc3e9{q?eLa z_AeWaApRl=!qdG6F)O+~DRpLb*GhiqzIm5hf-CQOvdF)YUrRzzvIbiy9@@7g>e)g+ zn((L$MSDGTf5C}5qfeqyUzsWVSw4vuQ&~u)|H(E|&pxx9`lJzehuIlVpY|jM$-c#! zhN!8fu)=y|DF$yxD2+ugI?X=0P0XN=Cnjb{+CIjbdbP1;N6(phjdC?=+P?0HuA_-$ zPEu%6?he<#9p^&Wc#Nm+I3X^;nvIQA4_6TrZx|N%jk-f!Q z&nMp7?Cd$cC12;`&1G}K@94eG+t|Ob?O8B9tlec=$GAZ1`MYuCuv4|pa-rNavT=TK zuyP>+db4>%=7M$2a`6F#vUx(5%(_XJ8oT{$ksZ6s&ta5ys7E)UNNG;HqWX4!<;FgV zGHXmhy40Sj4%_Mvrc0tVGkLm7bk@Gcjm?}|d?NMGcb60r7J&);J@g$9e(iXC&oMcd zpGS0MV~mBJep)@BE>h?Bo_9p}B?G8@CfaX$O@Bb-16YtIo?Mc=Bv_LahOOHbS+Qp( zQe9HL#4RVLOsm&v6Qa{`7+H-pQq$?3%J*GXhRBWbpSEYh>OCuEEIXR7|N+6s!orAPt>!WH3s z@kFJ$9>qijBmBAGbZ|O$-AL87a`3NwI)NzL%3mim6*jiNHN^c34g|RuXKWi_>q!}& zdrWKlE}E3Z2~;+_*63_hU92B1-c36>+)Uq1yEr@$dB=$!HG^PWB3y?6HUe(4IB z9t4^JDau-ThkVDq7kpQVFYZ7xUewv6U2{Ndt9;%O-#>(V-3Q$l@9s;z=d(?KZjK$d z&8=%|yYD~`-p|=q-6246E2%eqhq3SY;6@2aRfF#PlfUGl|B~ z%=zn(>rj8Y0#Q8BJY0Yn9;hD9Ky)Bs*MzsIm&z5{;ovve-)}m0>!trWCn2~yxH~%` z#6Q?S`)hwsKiu@$Rw8Uo-}No4e#h+le(C=G>4&ZHEg!4ED^-TYKd4%$ac)f#MUu%I zR+5|&uIs1;Lj0BNHGuHS_fgoQdUN8EW%orSfcz`) z@>G;E8Bzdk;+P;mPDtT~%t3D(OGQWWXzZTr9_z+Npqj5ND?@>6uVTONtiVnCw9qnW zS!0VRAdji;P88Ie^c`~fV!Y=Lt%KIxSOzxqYIjZ zr-z|(m?*cO(?bT7b;tWn*htb;!gmMcT)g=BvzhbI%fjdPZ?`9%wD@@pgbfT~Ww}wX z60rvn235x7whOkc_Nunkwh#B3uh6&IU3?yguVQX;t`xS@_d2)J2b1@Gw;8tqdy@oY z*wms?Q3(|khoi;A=40e$m_sCKz3;Ik0_bnp7(8(oiD&8E zFy#hzf!|ApF9_v3ONyXuU`bQIxbgAjET$0hyf32b{#<~uqR#s}%|ZfVA0DD6Qj6Eb ziL9q~DxxNQ&mLm`*G?dUw#PvuR}sss@ij>kf@UL zdHi1%CZ~I`pejdsZ6pJK1@e8a?zb~D^9s=wPhvd{hI!MB;b4}R4#GKb)yLL~Z%~YI z!FMxw@?SNB*V{N>iZQ160)$T2P{uOu$m!9XHtqaT1Dg5Yh^c9a= zVGLh7rM`2|KuhX^Vc^7gJms166jtxUdDU?6<3cYbNBS}KR*`T?ZNI3EEk^chbIabe zmmQTXSGVa0Z`yLgWzMN2zFPNO&8NUadV^MfefSusAJlH*VZuB;;YwrdMPr$(+mS6m zDI`qPirEdijj~!?2eZibMnd57RT3C}W<7%L)@be~u@6LZ(G9<-7=CzF84xTA9@PGluNZS0a<1%!1aw_IVq+;=vWJ2%=@Ju#r1NmQuPq;+nFhlqrIZ zF@XlEt+q*kts7cJm$xF7dMt&Y(FR`qrGR2T_#u1(xE>U!2i>%?tb<{akCkcBRJ z2>PO|uBa{%udd8jC(QLO7s=3@`o}2`fy2l!;>;1^N(V>4&H)@*=e_&A!##I^C&3k= zBD?x98Njz*LcYOy7OL1o5;6_MV!5ru*CSs5jz zL3zdd^r!*gw?!8kPFk>}&wB%I^6SmNbvT96e0**8?8PUW*8Ig)xXpNG_M~35A1&rt zV;?v8KFyN}h-n>B#8uvy5r{Ad5Q5;meEn$1|@U76~#7%pk z@e5{mryQTTK4?_C_VLT(=9q0kZPT8azFy4KujiSxiw?R3BDK9r$ZO(P#4r@IYU3vt zvG#j8v6Iz`DcUU(vFlVa$yM-FVtAjB6VPjYR<4x*RVi0h$6L6ka z{OtJZp0Dd3(-Br#5lZ$!B?y z!ub5Xq7w$%a=_c1-_V}= zQhKhQ5s_81#qmChr48>zq=lxb^WEuN^9~cHP@1TQtN-9QW$1q$d=2^dau4-EdnSfp zr0iKeuYB1!ax69vOzw^P`!WUP32l8|6Ym||g!`2PRh~V&22peYHf1ZI0fC~{n2*Tf zuFIma3)E0Gv?u`uw!0 zZMiXSej!3y6;u`J%(`&nq8lU(IRdU?zL0Pnrw)2*udQ&8@(xQTOp*Kj{gOo(_)2re@w zoj!?T17C)%^Q=_^bJ{>PsU31J@hRr3$Pz+;$`Us8Gf(V**q^E>{giiaXgm9O83-F0 z2#XBZ$W{h>Ni1NjV4np z5PboWhIz#MMEzSfLabd}y*RJQoRXfKg7$YU{UHK3>=Pn)42a#Ldp;Mzp{|=k;}Kr- zQ5u@tsZ>vg(gsp*)5$yV+T!_DXJzdb#$Ru|<6yPo(+VG|14@dVW`e^C*#+vcHQ9SO zf7ZVkVtm2QAq(F^|J4hX?#L&q4W|Zho_rl5Sh!_Ac~V;-u92Yze#^6JU|THAtuH?; zPY?2;iuOrfpb4d~`Xkn?v%r+k%g4ZsS$Z%Cd&;v2n9~w`!Tx#WGasN5FK;)$4XKXtCIMyM77Y zu~Khqg1bW!R4E>E4NDeDvVClgOg?f%SQ>ij zglynAUeiufDNrTuzZpP&k;Fk){L|0Jo1xCiJP>ReL>Fz!96zK_BKJ0Uh}!-=4W$94 z0UQ^S;KxD2?RP^uv8J-LDc|a;fu^$A!|^V7f;&N^Y(usmZm4Onnr&Yay}w!7=S zmX$xWFCOJ-;~SO&PR@dv1cm`wof2i2Z2ssfb@Md^-oG}nPk>=A_MxRO?kfO`oADJN zNGj0c#ahU1xcg|O#Yb?uE4AD2m$hln`h-|Z%4CNuVrU^#Z2RiH@m{cZ%^%}B72cIL z7U>$+qp2{!!JR|5%xidxMCW@8_x7qi#Jb7HC>Qshd-!IR+Go0f2(E}7x;Var#H-V)qKHp?oS~H^2-4)4xffB=H?pW5F!sAKN}7|C{&?{*2d`w+0kqaL%#S7O(VuD; zW6qe;$@5Hm5c~wT%HI9p8)j7A+jQM4Q;gDC2$b1Xi%3CSG&@vYru+b{ZJ=D-obiQmz2 z=&S)p;|8m&D$c_FsHFad)Z!rvy#$t8#>dCRZ%9=`_hhO=+w)hBhTKLp40l; z*U+7K);>O-D;?_*doUksDBZq$Wp7e&S2Q{*wM)(*kSpJmU}Rf%$zTyaCWt3_kNw~o zA^ih16*YV6BST|8@3PO?xfw-&?@Xu%%7vmtKAGH|D7?^RfCDc!-h27eA1sktV$A|qn1u~hq8CVVxYh3i6PP&l*}}C63EQm> z!wOx>L~!^OSlRIzeCtRry&Vy8vrEo|a>}0c{&=?dUsApj<6GhRneErPAbL8V6DzJo zJ4SUENn9Gg;MV5T+4`Y%yEI&K+w^L%{oCpzi^ z3=&$l$@?#pr?NQaycww2F6PO%vR!TOmw%o}1I_tMIF^nvGEmPUkyagWei`(xvbh~V z)J!ugwU6H_PCtcA=CFZ0lggrh6OceCeOf*V1QgaleMel?ls5|;0eMG+L+4te8|c;> zj8q?vGQkwJ;it%V?Hy=N%}D{eo9<}t(tD%T8n%u&$y5U0fzRQ|=%u;JWo5bH9PdD^ z@%aLKYZ5A(rFDzF5PtO6Zp@k|QnTq=@8F2I(u}eSDH_A#fVkVYmzB^(%yWO9*Re1^ z?$b;AnJ7{jeHCg!X`tI8mV^Kpw}|a04*=YIn&9sHf+InFck{)7@DvPQSkoUT0v!a- zoW9mhBs+WNf!9){yH5iI45b7@A>Cw6KpWi#h6~dDV~`1Ga9@M}*HgXRdTr=;@F(b}b~)WS$Q zlCN`r*3dC?6-9sBbuupGm>-|EJWX7srceKN9nIVPxnKJyRkIa+uB4>y-qBsoVoDdB zL(k#Jo#B5hG-WjN8_Kig+R*vo6+p5F^{0ngQju@;zxwOTAIOI%TI4LoK(s5DJI;vT z1_lUPdothfG3lC@8t64?rz)SbA3%|GR6P>%k($d)ot7?!AQ-3qJ^&kLI}B-^lo-fP zdD_ePpR@c|T`5~%A?rM-hmj1^oc_gu!hK-Nk}yq!)@6=h&r<{I8@w|0ScW?kb+ zmf^2P>vNwjXlrgNh*X!$oF@3_*Fl2!dAV_U_baQvKjKaLwh|>QD3tohbGh1s@YY)+ z&8w{Lt?^|}{smR95-Z&dQm3tjrArLr!-+y{HwwpF6*}WpLfW)xrWMdH={>fIXDsw7 zSW0T0y#058+ahG|=zVwkUGODwP_M^v-Z_8nCo#GWoDC&CQo{K(zy&KT0^Xi5hN&;| z-O%$d)+ylbtsO7LWe(YfUa!vh&t8Zfjph6ZHlWBgdQ~g_jDZZlwd&C@yHVgdUJ)nr z-eC;8laiceaRMqu)s5?HIrB*3-`yQRPExPyIeR(vqc_=zyaZ5R3~?#=u3)|HNnsI)e@{HS2*vHz`*up^=o}Dqj?nZBjt5qWw!TfO zdnj@wkZONC`wIYjw!i)XEQi^BO^(q`@;~gINVUjAQ}H3**LNRlN>u&XP9HS+EC^V3 z65tNL$h5evjaX;^PSe>esIm>9aF3#OtLMdB|4sEH%>)$re3G$}Dyw|o9l+M1(a(4p zV?+G9BzG~`qhIj+EjOlC>_oeRdU^?rDL0zBGyl7NxJX(oRNh z#PZuHX$ICPai33qT~p8Tb1ypbP+HR1>P_+#o;Y$r1Xj245Lv6d7Q2=QwP0&ZmG1R| zzD=_Uq`3A?r{o>^-aT7l&cED$!nA5VuZQ@@{kPS9$Q*}!{x0rUQ0a~h+Wv~|Cdy}*;C;G@DdU~hhCfibebQv6 zv|mN{*?4$nqqT+$@f#E!+0NRz9lED(-8JqV1xo@OpO@m@^OMe4J@ADc&;NG!k(mx! zlMqjj{B<+SiMJ#?b>mvoEh|!qbr%4q_)iBEw|9}%si1pN12Y0(^QkqZXkMO5FVU%6 zbENUK{`^N^i0GFIFGnZ}%OUlXYx7T)eGMCyz&MpMcR!>&IsL~`h}r6h=(el1;Oozs zB11osJQd$ZEI+vOebMVY8&Tsi{J-Ko8EmDJ1NbHa%sWy-q}+H1U-Z#k%~>Yf3oFaV zQ(8VBeywt$oYUp9G_liS9nnjTY0}=`sS$2}JEz=i6}5vmmqeTCxUbvT03K0~Tjcd9 z<($tPTqUe>JmWDtj@xix?rsoV=W8W7J)!GhJYzMxjN3S5^#s%#jR1*H?asOz0{#Jx zFfbb1&HGT?IU_s}PC)E<_SI}RE{>ZAxGV(&N*pkt`48ZP0TLLP`bVVF7~=Png?(v* zk8^3G&8)i98KCRAI}U5P*)(NW1ZIG^QQ}Sqq5fs}-Q$s3;yTl_j%y;99)oc^!WajL zf!SOfZ|aH*x}yVg$F=rIA+e(w3{=HR^9Hmw9F35(Z;oC=$v}MMTXHJbqg{#kJ0V@V zZ1GqRAG@WXq3LHOSM=TQ*g~-GKY6D<-2abBhdAT`nFL#cptmtS%ew z&JcFmK@jUo0MQBD9)QP~kqaVn$Fth&^f;Kp9896k%hSv73CGMcuJ`2r&gTXYch3zC zZ|E7>vUtk#jln=rzFftb8whT_5RzRzL}8 zT! z=F#;HqjVqPQxUkOP4hjr6qE3*-&@0$9iPU`W@&_1f}fHq5sT?VEcDqb?2|53-ul^R z0V^IGEe5M)K1(;N&4sf5zD+Hgw2gOGk_*)mu`2ptq$A7PqPjC`BCdtUIjmuc?t*t| zb%=UIFN?ssx+SVi0uU|`V{=d?%)X{;hi&{go`AbaEco3tX%pD1amMAbDiz-_f511Q zoK+N?!$WU<*33_7RyM`x2m{A3Zn6mse1!pxwY(D**AoK4@5>y9NlH$EI>0TAEo*9e=B?=5HlrvYXBs8UN*)(9n3`maxs9 z>*^Rwj=d{{gH4`%bjOpnm@WHHz}*Qvs?O|+^xn!Y$cKIQ(UdWsAa#(Ef$X+k@=r#m z;pEBUdt=gwLZS>r;YtLUUyPNNgeAoFdh3+?g8VKdgB_3EEGPp&4Zz?VhvOB@AJQ-9 zY$;~#o7L`{B}*hB8*+xbF9vGnlJzG^`In2@lD!F4LK*<43=A-btDoZ!*f3*e=;LST zBd~LSRjM4dZQy)woV6&^h6!`?Or8C|IqN^_z$LN$evr`6Mc#5jh?&4(X61d$3X=8{ zYV~R%5s<=YJ-%1`ZVRBmd$J4&?c4sHd3FlrhaxI{H;nr8y&@VEC?yxirs=U6?cj zilnvYc*DyWqO$v1Anzxj+S4fgG>*65^y4P4?-fTk&!(ZLav1#X+Y8ne{+sKjACIE_ zuY_%RHqN5+I{~;`Jt~V*1V_djg@H;jQ0^blKW^b)J}_$P7e{M$j7`2pF{8`Z%Rsg5 zt7EjK#6Li&G&?}pv;FjIz>)43WlNYf+^di?ne}JhzR~p`1h+N!B@gHW2WEQo+!G}X&@fr9*U;yD0+$% zYfdt7Rs=QB$;VB0NlZ<3N%UmuY>l=%FO0JsrWJuLJqnOA3QVB@daGN@YSxU)K`TH?k^ zOK<&Q<=H-saqbaD*0IL_DHYeN4 ztD@|KA6?BgRC$u8R3%(jej2RE8@(G>*rP4pE4fi`Zm;Pg0^O^4la60f2o^l(?|&~Z zY3f4QcS{ASDy%30Wo!0c8tHBQzC0A7?+t!Dq9jl9XOI*5L@sUjJPvJ3hr3}<;Z((x zLJirYNcpUbS(@l)AQG>ao2c^RK<%@I>RD=CM(roBxcKXwtg>0#L{ zh}rMFF-(Ev`jJ;~?!DW~VYH%xQuCvyH0{&pXETXPo*drvE)aYi(TRN33sAC>n9jfg zJMOneJ}Czvk6-R5#_Z!CbzWVlqTmaug+A`szi&J;YjHlP7ZAD&m7o(V~SUl zoc$4#Z^{2#N2)@`vXG1VAHI}(++^ryb2?iGb2@qU-?qn!b*TWfb_#wGa)5!5V3G;kc`w(#@An3%041vY!)`TKDDh%~X^Ay_MzBIbgRiRW9A z|7!=0XeE9+!rl{O7_kn+NP)x4@Jb-G4$COv3ZtL+eGmI`{KvSxhz!d9ilLA?q)iEe z8}fm~S22VqEUpNNSg*(k^)-YtyXdH^g9uwiWTS03Y;ekzooEA@{5KPVK z-r?S`PhirQc+KI9G|o>Dko)T*^mv>+XqQ$VWI} z$*uyB;PnU8HRBL@%x^pc%DK$}3HAE>ALOj8tXOS=K)aKWP|p<#`!|r%`VS+qsF!{G zjvsmYoqJg9!=av`mwk`UCM4iZ+#dANbt?NHSm~6@pCtp@CQRPh96CRdC*1|TB_4aO z{MD(?-UqySF&tnexb3+Tv41JJlI-gqNca*|udHsBpoRP+i@7pd*;Ynh`1Ye!DCdvY zPuXGYhoONXHHTrhPT2`z=(DdOSIFw{%ufkU%?bmwjVUe`KT!?%zi@n%j57I|Lm(Gg z^|s491Ba$369w?enZ`L(DEm=+M?cY9&>6v->N+cGlZHD*MH1OxS+mBY)gjj@ zNumg`5K?tS1HWt`EM`B^EtQPCMB9Tmx30_bUmuCb28_k@9c`I9phy&c7zn;ZIN z@WDJ zd1m}0HCkkkTVz_G;-BE6MU;vJUU*?3-birKMAt;8NPc_P``$Z{{RaAR?`5izw({MW z#)EOW56<#yx>kE16g}w$zv4#gX_ieD_l-z}PqYxC{1)L+dd2uyy5>wU8H1GYRdFT! zomjyM|DvmtUnMe{8fsU({5Ql;K>#(>YB3B|^s~U&qaPqgO2)Cr`NV5B@e$)vkvFlg zOnr|DKP^s-E6Tob-#~x)3T1K~{YeSURg9TUu0Tx{6aEx*IG1;9v4F6jk1Rq(V*94% z0F)2Mx9~=9;f;X#tDgC*&98}H6MZ*z*3fr^rgj4S* z_U~H8j$x#cI1ivIv*O3(>&9E@!droajIG)w)!8Lglu>8|zF+ZXxp85+x#8N|Z|NHr z2f2jxjq&g8Fpdq|?J{?TG6h|i7%;|`8Fb-&^@?@1OR};{(g#qs*2+5M1h03%wYz_E zIYmy?FQaS?c)xNRvW~(FpMAq}!SXFRML3<>tafXpjeSgG1j5B}aM;eWj<=PR!j$f^ z_Jc`>LdPiBz?-l&WDQXW>i_MJLLzN%IK+#vHE#{eS1rvTn)!+Q+aK)u%ZR?zbP63- z$=a^iXIf93_$#IhozJ;0`|9TZ9FtC|U=+^W9xjN;+z$Ws=639-LJ}>TWST)3vp0X^ zURirWdx8nm{wTX8gv&Fh6P0j0VIq+{omw;?E^GJTM}fMfLC~ZZ;pbiCd=-9YT$i20 zmIP~Z>cz2GyF|j?pvgzXz5W?$tN;XWCybjd+EuIOnK$Z4T_l7~aS#0Gu1<<43~8Z8 zrbKri6(sN*Xxu)`=f~*6cSLd*#$+HF4soqoe&_5Gy#F|#pRW6{BeFY|)ih>Sx*FAR z=A-VqyM0@ZQfZPahH=|Ai%N9xp`S`Os6u1o2IW&4y;#GY*e2^;u*($+*_dk0P5Ebv zcVd>Rs$wOo{x<|C$@HpuLYQE47W1Vbd2bS}arN!I(7@np%{(DWKLvu2n#&&|U(vvO zYffC1DrA!WA2sL_3ON{Ydg%SIu7tOR#VQr$RWrHJMc-K5&@d!#z$~?8$!OI~p{Vga zMol`}e8qrwnJ)t>W9gv?18@XS1y_`N6(UcKPVevJ3Y@<1z12?$=3taiQV;%B{FRRq zg7jM%bw05ScJMa!HZ_49w_Mbf?>5QaD+bpejeI$g@FK%E7C)oLi@&rn7=(gKz{Ldj zf6~K5QTwiEN$cOde7Oy?8*m>}E$g%24tK%^FR*>ae}QkBV}r^5*Vtuo5BSFFgK?Vaj7)5+Blj#Fr5lAHpBCB*oJV+`^kc9Igu_HR8?Jy4^Mozp3P&i1ehqoy#_q{{1v0`8DV>XFEx${OL9Wsq{ zi)4;8h=h+cjpT?NU*>NHK*)_w%|-_TH2m^#-&Z*i+wh8Im>tGElf?Uvco2u858zLX z8m~}dhBV}bw4wN$h~UTIL^gZniJ6Z)^Iwl8$bOJwltPr^mNN9Sr;evThl{j66KF}8 zG`?M4#v_qk9FojkW*890czaaDEU`-6W5PN5<$xK>=_#9!}7etRO2`}zWn@+W%%~72Q*@fvU^zf zNSZQy`W-hr8R147#kUK3DqE z@Psht*U0Ta_#k@(#mg1OvbnCtlA3zonCz9@#U|v>tyaB_-8IF&o!Rq7vz$?01lI)L zoI5eIc9=g4N|q*mD&@e_=uZjA1C zc%c{9gPoGUE`c?A=vez_OUw|ghoPTNz?5ioJ#)X5+9#+9swpH1K>u7%| z*s9SRJ>nkCh@FmqfWNmd1idh`-nUMI99LQgGpjFillLD49}I8#tTve@z7v19<+pEN z>P2^E+kxxLdO?PB1d+patpyrj>aRd;#Cl$vNlJaCf9t!y98z_z@~nN_Yx%DK{m)Ig zyYs7b-yM`GvN>-t(2%S|pW1iLV_AKl%Ff}Hr4L@;c2Dfxn#UT)9=o0ME9nq_AIDj` zN$=k>r0Q$hH%rey;j;WHZU{D*T;6{s20z<--?X`hu^~96vJua2g}j@Rjc-<3M%(|c z-IP!`rSp*==rN{Eb=lnEw~tff+hB}%bh`+T)z@zDDA65 z5Hsid4Ffp}t535HE4$;)Peo?ul&#`S(7VGnEo0W7!iTw&-Ibs!Jt^K-^j$7~Oi)>q!EPavv z7Dd`OG}!MbW%^Rv4kg#nY@egptNy$G%H9OP)xF7p#@wC)sYJH>akWy*b*jt5Ii`bx4>Kl8T zp})CzCE(WH)qp#CjWlmN6i6`a?zKW@U#~rotZ%U$RcZ_qy&k|ry?&)e-)cJn-vVGD z)o`>o7|77;Z6{&;iQZv2g1&b>Mcc_hLM$IglkJRBua|7+;oMI4ZUj7oc)oWtTp7p* zvJIDdx5Da)eZ9kWNog`%?cIU6dmeA}?gO0ZodBHeJ)|^sklv$!T<-}$q4#7UuOp@R zOrQ{sb5&WPuj@SzDA{fRdTldGWk*`?CBRIIGy~@;+h&zj9XY*Mzlby+DCx-Wy#Yrq z>YWLc>%%=nF?5vn&MF4l4^-*H4#?=&_HgubIbtY$*6*lrqySbs(g5omnShOs9KaSw zK47b(2tGUP3!itiM^McAv7Qvg)}eQl{vDbe6^czi-jk-d^xJwe6<>!0H4Nyeo=1nH zPVwn?_T(sm4zHsTP(}x$>QpPQdoUp=8vX|#(@fXOtcPE1KJ1bV)Jt}gU)i%Y|%5& zC{MLr8fXEe^Gu%TA84g>&VXLNMrV>}p%@%6!R#?SASo=Z{6Ip-ZO7Tb`i{Gf3xSPB z)^Rzo*~mMt1-2S>j+-)PTk|h zfkVbJXBO})k26=6jFrxUz)@q3vp8^~E$A$hy~cWHW#D96v$G~}rfsFOUam7XIh&MQ z#ud&Lf%C>y&Q*a+F}`6mI1PcTMzhll-x@HAzzw6#X$#C4T}~JM7M#A%R(7M$89w5HXH8HwnsK{x*HC7R)3z5l_X3NH@hD^| z#$C<>uy!DCH12gC1U%q80xS+{V<@M6#0h9T=$szPHy&}G9x5^(cb*$6HBQr!ZH3N@ za;EXL^U6>~jJfHLIj;}S8qYaz!FwS`HC}Yy0j65xoRf2mS6pg%_YJNDxDMA{$$+<9 zsdA(7jw=H=*lAZboX?yqPd0U`U4?;(_AFP4oY|S+Dj%xuOmV`p$Bfb;v}27ei8KmCFt+9k}|C zBZi%|E>Dbs4|(rF88M9SvKDc)v%%$;Q#zYnK{>5+rE6Huq>OrKtaG(%eY`)8xQ+h4 zhIYoUB=F&(J&611Sq)8g8eJQQCS!fX!<|;wX1Su%?%E1`7+CSpu}+U`M~njxP2Gd1 zfT?bg8$123-GD)gl(i0>jbZ1oYhR414qfP6@0yTXJ2$!x0YV-!n_Wj^tTkZ$9EUE` zU;WTE#G5hf-0C_3Tof4T(CyA0u9Lt#ftL>5?cD7;BYQjdxy}P_c3lF_dB=4XxFviq zK{ke+6RsOU-q7HhfnPVBnaes4xn^PYY;Y6kA9ZsCNiJGMrf1h+o8!j$4R1y`BU=xS@qbW5=6 z!K@WD7-rp$puv=5p9`7|humJJ#+2`tgEjGW`J_9nl$na$Yblp-k19G-se6pB>F#kj za)o=FQfaDo?}RmobMK++mmB6lQ=NMf@{R7pkZ*M#`)s8!wYaB(HdCwn6r3AyiJ=OU z-hDPOOFv!EWiq)h#AaG$&Lp`n!*Lw$Yp@Eynj7?)ytebf09~hoQIqVx85}W%-M51q zOl#eDgPZ7e3vR*VY&VU1*x)YHn1@%U=^P&18)rL!f#EpDS&eOL@BqbFCU_9>2t9}3 zal~oUxJRcHn6`Nq!*$z9*$8DOfnn1gPkOwcO%e8jwIFz!&bq>P^Qy#lR?lR|GGbraWbF7BT!e29Fp{dMcF_rc<68z_XtE z_=@kR7`$S-;Ax7j^1(PNd(OU7u!2W21cyeG8)X<56!}5Od%)qf|bK9YT zDS4-Oe&AGerFd!JY;?7Fb>KqO2rK4gc}l!7a4ob?oEf+owTiO?x1;u$I%u02xGP_l zh@XvmBo6q$UlRO$G$^I`b&&)56#wGSc(|12Pmc~unf@&3=lF9&=cRmqL3F)Tq`snVM0=2sQO`y3@>BKaJ)aYLk-4|1NQVV3prB?qc z&|Gw_pRi8*4bcg)*>8>>lJtIC^r&R=yP_LG55mZ{3BOO?CQ1H4^h8W&S+4n`^LiFF zrsP0f=@OHv;`5Ju_U_ix{tbYrl_al!lYAW8UXx^h`jE+L_HTjXhyB~5C#ALi zU6Jeb3PjIHqyD`yt`a#YjrkAAQ_{Hqpu$Sq{70harJerc(MvHsDDCl2N3Tlz{imZh zkmt-ulm2s{sXLq|5#}`LJ|t zPz~x8H0+vc>E>WUOtG%1y9XPsw+55pirpSe1-wg`osn0p$q#agC!pYp@)2BB;nU-tOGND*0}A z!C)<5@nD0(c9#t{M~CV6vPMP>w@nPLT$9#aIk;NB++8zhly7&}4_aYl)1X}rcNKef zh4N54;Ch5}7igBQGSA*nVOOQ+K&V7tbSu)8losqBjOC5QZ7BYml%pkCjX5lHCT(3c$=?%LFs7g~?Fk*vR~tIib+E4i@JL^C=qQ~t zLnjbVb{+3q89D>FS}Ew7?lXqYcb)FDhR(;wUq{ zOxLZx;UN>wqQzZz`qs;%U2}aKL$hXe-{vqeC-iL%bNaEq9g5AI+_zgXn^XJt$roZP z6veQh-wCTB^!p})+hfeFv%K$6IK`aNcQl-)&+j`C&NOHDoebxg^ZL$&^14>^oewpb z3;QmGR+>xtu7>l?<$X88Mdqr$nQ*DOwr^IRG&gvTge$&qv}P{}SDROQxp19%wO0r? znvLF+aEsaMO$)c0?cU6=-t6(_giU6@H$N4|$@6Pa) zg?RUbPgywc{$Qov;RS_d5xj>1Q@qE*XDw;osqh6$ruP(JPMbdj22VBF2Y-? z`xnDVsXslUi@%GbKP$4>;_c53%v$9Bf=If)$lR=CS;GCrku1Hbzf7sOtnIIi{B>N7 z{jDJOmw|}SGSxp4YNqRZBtSKIBuc9>G7|gi5SP&$_;(e{1>5Gx26IOLmdK`<>bG3(-yYe5s?$$c@&I#_`A%HAq-z`+C&|$KLh}ofse?uy)@A8lAz8X6-73CnTk(?lZViL%| zG6IuGK4p@a`x%Cz&p7e)zDec*rj_YpG8hXJW%8L}W+PL_Y+}C4yw3cD`7QHx)d#8% z7?0Yeb~AnIfI7(ZtB2L=7{B^$_1jE9{f_$E%#iwB^?OWMy+^&5c~gBr{UI}={<-?+ z%&7WT>R&T&~zj4oS<;*Aa2@mE|?gg%fRdco6D=f#o%B^B` zTsvoEGdK_nY!>I{WcEwko7{T#8E%vtXP0sBay!_1`s4)L%>#}#iyh+r%FVD*?lw2a4r_@vk$qd6qP?GeSNnkWQT9D; zuJ&nmul9MZ#2(fK_lfQkHGN*rOLhPXB%eOB zT|FI-+<4T__jA`BeJOR_i5k;OGc}FtPOdw%?tI)~s#XGm7jq7HXo0mt|&5n=}ZbTSKX{cImfC|$>z2C%o{~KYT-e;le zKV?28DyZ>fqSigDdzNT)%XG^K2csXt`&0@0KKnjl*bmqb2+Qtee*~j{#{P_G@IFBq~ypME=Do>S19>QnFGF26-3X+9Sh&`gJQaw+y@tK(%yrbhW z_(TGeg4dNI5o?KGtQ8x?W^tvsS~QAQ(Jp#KzZe7@7T1d##myL7#U0{q*tSoc5D$q* z#S`L5@r-z0yd+)~Z-_JEtVASE5~LIc8DxT_8D`cfSqXFNo8)WEI%b4?of&0D$v5!X&($!`PLMWc zl9?nO%wgsi#K;_DeoaiwzcBwo%*=0?DPqC;6=9CZBNCs_=aU}1chAm0$rqDeykF1B zm-FSs#aHr`#Es7xdGPMMK3>nalYYK~?;r#4-CiNLvGz-;?}W7!q5`5Cq7I@l9xd@` zh0v2XtQFR3Yn`>x+G1_B>a8ZLWOZ1*fU-4gT?=j0I%XZWZnN&R?y>H-PFfFJk6EXz zr>tkK7p#}9*Q__Kx2<O?iCM+2gM`Mj*HXcY4IGii{cgWx_C>xBhE=`XvtElltKT0 zQH?=kfhF=Ay4C2uu>Aj9eZK-N39CFAt9&6=`68_H#aQL{W0j|3m8W5qr(=~b!79(d zD$m3!e;BJg3#&XEtNc-{@*J%4$FRzCvC5ZXl|N3Vpygw&KY_JgfVEzTwf<$S^&+hG zC$ZL_!dibCYMmveSl`cJeLu@Q#AHI<)5@;E%3g+*U5QUmJcrd>h1L8#R&zC0^9xYT zgYX+r7zKU<^cjj5v6}0!n(LWwGT(&X1Fh)>e0t&)tma0n<|bwe>bRMiW~Rw&{OkPd zq=j$gTgmIZg}2bBxswCQYvFqm;My<1yM~BmKg1-&VTfb#+!Vwqh_etEXimM*a=<~mLv9~qW+6PbC%=w6QT)1a;&0ZnYN!49sfA!7|Ut<8Ou5QdC~iM z(0^Ml+AoPRMA%`lT(Msj*Z$+cF{2K%<+}Zb_`liv8t5pFE8U)%ogfcK?o)a5F&$^=^0}pW0nx4On1+pMx*%;CRz*x6NM#2@Gv0?#(FFviXtn7U`5CR z6BYwuSt1AqOfaj5SxkV)EU+@+Vfo$rb&n*3d?07vJLjE~oI2mvSJhRw>*v<3TP2QI zA8Pkq3*7*2hHjN^By0{}g%=$db~- zkrn>5a5^wBoarAD9$I=#1IygE(o@~wpZz)EVWnro!}tk|27_g2pA^nd>g@^t)bO;@tKINV4;S7K%G(k{{8HHIpB*mh6LZ7!808ldISl`TaLIi^ z3A_FNaNsV4!VyOKm1vqj5ngydD8H5%;jaiU29|}F1C`;GjPjd_G5ic(jgRu53!nF| z4p;fth1d5+d1qq0zdF3}UI>YaNzhRf-VAIF*ZS+j4R>IBc*k963OC<@-Qhj=jeX($ z{zKuzccC?W%zq+$>MooKpS=Uz@B2V$M`V@%V)&B3J$$uK(7V#xk+lJ1WCP0G2zT5U zZiR1`3K3&(u#P|q!5Z0AYKf%W4+0sHEv2auYZuZZ8C~G_S%mCJ9pvGWZGlmd#?s74 z7TVhjfxJiy`ZP3>eJ=ziM)n3KM-KL^Upg!@{0`(sM%@LjTM#)?IyRCQutkpJIV*Cy zul9TzN+(1nmgYw$--T(Bg3`i>?JhVYvw9*hC(@Sm?RWTM-B%`kTws3WLed8XT#+k1 z{YaOc^qAMKc}b3uH*&3OY=e=TJ=?^-B-EdL3a$N6n&tyS1NAk`>uN}NBkvn*@1Y#R zh{V*SJ%`4GPw{v7eIOR;3@nO@fhE!Yffdm--d_T%q60af`xaOm9TM0O&0+r<*c2VX zeloBnIwnvT9nX6}U|Vz&`*!r1>^;yJotpH|ftKj>z}~3D{SF+A&gQWQ9Er|l-^n_G ziq(L~@{v?6dbx(s_H??JpL@ECT|KB@0#Wn$L!mko)o!`_qJYkSO5mrjPhrzH0RZWHf~WjWDmZd=)iXie8Vb9tIOo_p-e zwC8c(%Em;ua$ebZ+QVBk@P5tXdk2na`!e<{-jC@!$-S7L0ND@st@j?wPe$3Ku)yFw zHo31RQ8qQ4&PeW&*faILvFBcS#~!KglS!0Kr+tv-7<(V>hhn&eQv6TE}umx zn;oskb8d8d*@9>j))@JZG9|jZ%pcuX7K$D!OGI0dPivU>53E~SN4%cODxxRKmPOC7 zFDk2yo`dhy*Fn-RvTd;*_H$*c$u}j}2+tS!Ev}#RfxXvO?{$^*FI{Vk?U4Lt*}CXO z%z1URJy{>+X}y)zL~oRBjo#vRm(|CFvh6Vo`*8Rq?n6^7wQP4R9rfT^u*j`{1TE93xbx|H25)! zJ3_M)3StWKX~D6vKv0O~Cu4%p+=L%KjrV_!8`#$^NQ8Kg4k-x|5*5K|vBjZKVp%AW zs0>vkR)>}))`cn))uGji8pLF}zvQ}z&605w$2`dxg>~sV(8hI%t?Vz+u4HVNjKdP$ zJ{U;GFna94x;P#SRVV5>-U-ztws+O%^4uT(nPWkYxu|cUt%)Y&aom`M9w**`-m#z_ z``rP3TzkiLUEo+OiQaKtGDhnoHVf5jxMys}u~*Odi({^2+|@J2;KE|VOS-fN52 zU)h;h=3VRRTx@7E#wxoQ8&=jH%Vl5G<*#nU#?TUTl4^B(||@{n5G#x?`Jpy#)iY+F&Hs5L_7B!Fx{<@JD>c;`K*;4la&02bah8 zKsWi1;L6y3^iwY%tco2Du8$oHZj7A@ZjPO0Ulgp3oews|E(LeQt_GW99lZZB;GZZa z2=0m94(^W|*&hcF$5Yr&c`pnei(7-I;u*oS@hptj`FM8lQhYd{6M`M_JRYau?f674 zUv7*~E>DRUlw0FAjse;KCw+5yMtoLzR(uYF^JoK@x=LNEZcsO=Thuyro7$+hsC(6e%JO8Q5=YeI>S?u2S*a!U zf_g>0M&)jzecU20$?y1!^aZ}>A5cfOJ@fy{J*b1$#oI>JJB!WPV_6d6P2Y{W|VMpT}+J99rqW5neFtH0%`S;ZF1$xD)**?nH~lmEu1MCHOmpF0o16 zDJZnA_X}?EqWCAlOY66T#*%**xVYO^<+(zhJXc;IE3#h>QA)@a@-n$nUM;VatK}M` zi*mbsL%zimqF9tvC0)r>hAP99TxBdLd8=G6Zm7*vL3b-3v8tyS;{kHLwslc09nU8vLUvQ2VoznxF;V# z{VF9(VrxhvTUbN(#CDKQR8lnl!0m6R+c+jWN0IZ78fDZ}w>cil)PWt8jI-AT!VhFh|rCySPp ziE^r(s!S$MzdI=fa;7}AD-Gkaddk()*xt!E);B?(Am=BOJ0efhQ(^Dq%a@(WZ~3Ol zMU;k7POqdi$_wRrl=yokoIG`M6+PXkfux4+)-D%%4njj=a%AOzmVAYBM2`4!i5K3T zd`{}$;$)&)%e&G_J>5N0Hf0vIX?-#&bL5Sjl=*-F)HX5T#UFoXa(UnTHq%^X9D=o0yL&{#|AZ+XiM&dXu>NH7h=x>8^LAin!T|s*_ zO>8Mem?fugp05Pf;Kt|&c%+q}a*fu`c4a=ToZZSzIalcay5r+Io;J?9YJH2uBMTlSg7n6b-X%BUaU@4r>hdRnC(AZosC|eqZzZw7Im&V zi8L-y71G747CqvU`dZ=HwYW~GetEwda@DH|%1@!C&Jqsb{D)=Xg!3ta-QEuHH~@ zxdpdH&UB~h>yKApt~*_ACtIt6y=|nonet(|**#R==pN?Ib&r+Lx+l>5(rl?|?tJ$& zcOmtmLEcYepQ+4pJKaT8dLE?`d51fnEfBrLTyZ%{WHCHSZZ{zy@254K?p{dw9qz^M zJKVRa2Z!ZT?(-g_eAbh~c1nESWA$WsvOL-9R?l!b;29-f^5l^{ zvPG77CVD2*H_wxWc5wfE5qW}dq2~gP$~50%^0p<^pZ%&xo@KdjC3%5dUlnd`cb23H?z6u0@-(Hzy~ESuyX3p- z>wp*3J(=&e51!TC>?`sW`HlV*@^fy@*ZHmf4E`E_$)6<${Mqcyh$H@N|8V~(f1YQ9 zpFFzztme7kyH@%F{>gr;eAZvUE%6l4JhAPZ_1HYK*nYI6rct{KJ#*M6dFH!IJTCc| ztJUKryK11XGFJa=dPQ%4Z<==?t&x@9A>JJC2)W2R#yj3SNv`rvC9PH7>0U{mN198#v#Cv0 zF3CIByTGe>{oar_L2Y!BHLN6GU*)avF7sB(sovFcp?4jv<5s!BTTOKuXnvZ#HS$JJ z(7Tn!sLm7g1l2SegA#XDlgH z=)K{+5m|h`-f7LLM|F4;n zT)|MXT*xRHPH7aSJW3NOO)i-{k5WlNNkQ?v;&~-DO0!C4A#V<)`II=%MafHv>dg(! z4V45b#Y$rI9i!E0eU`qFh7*l|6O9pP853e&5oZ}QPB9k5y!~*BNx>=R0i0YO#K|QU zF|QRd?`IJ6rs2%;5Kb$f6%1)gS`d92$|r*2M!`^ggq|(*JT5*|IHLIA{b1%{dX6EC z{}fEpF!QX2!m0O(=>(|{%+@fogPwEm4>lt`7wAxQ_%+Nd(Vn&}LN>`ELgH@NM$xn4 z-mpz1OeT4mj!MGnUYOno*7ZX5Ux6CJ);>_*hhE0^UTC^MIC<=M6ZU-y4ry@C)lk@a zpEyA{(+AFJaPqueygxX3ZrgR-&~ZzH)2}@pE}Hiuf&PSw z?S)}|Ah#FB{uP)&$nOKw2!(yX*$YMY2b-6k^R)HRC+M9mNQmj>-1mt9A<_rt={lFt zbK(8Lwt}9EdtiAFB+IPTpBo69NM70ft)8%L(dDXp!&XPw)=S6wUf9?NxNajoH`B94 zf9~zOJ)eqNLPHQqzkLdQ#cG}bIK^qg^!ekTxnF+0Z#8<}m>!ta2YT>e^;dWXeZf^vt9$oHay>mYqsloWGm8slG%^x@r#pUBWa=T z%V9Y5FURV!Su$?AQQRG)oaolU@1C`2{*v2ummlusgS%pwq#x#flCEd@9of{g>D~2F zzEJ;ppT170Z_j4xdAobyP#@?W3!du(`ndLv>ykh$mPGHkE*Yc!cVe>%#dpSE(~7&} zt{yQKw-t5syT|0NwMFYsa^AhJq@v=k7)#=HU84D-WI4&L*|ikV?J4O8PH5{&($|+n zenryPokVL)s?yMNy-B>TIDeyVpS8tz$1wz{LB|daSbMC$S%2>7UW2?QB--nwV?EX% z`=C?WdXs36md+C{X?sr+++RLp@i=jxrK^MvT{rbZx~=z9FYll;og;-{C1e!C7df&B zbcS;bCydheKL%nDiU}Nfgo&Czc1+gol=ebL0l`L?rHz+k4q?7_PH=d&adHH;@($WN z9E%7`v>1^6f6_NQXb*6#(qYr~8MbZ5T5a4N6oWc8X?Et=qKzZZqoYoLw@ug4sQGdS z#fT1y4;|!t92Ac^C=PQ_T;-s6%5gy(U&j^Qk8%I6>Cc;*Jvb;9a#9TBq&>o!*28`R zT0G#SSjb7SkTXZm*L|*&;sNIveg0^jIBATW6azS?_OR9DIUu=5k?fqVm2pa19{+2M z0ec6${r7*3@waqWCgzI!_&2J?L&7fwpT%puGtxCmZC zkPss*A}k@SAgm&+C2SyUB5Wbl>DWeSB(xCr5)KlM5RMa06WRzD^lx7Il;<`5c~dXn zDF`W|mY>p}kfyioivFZNqzohsA>?TJUC$AOFj>3^8p2jWz5d+Z)4Z#uzA68Kq2131h7odwU)m1YT5Tt6XKd$e7lC%$4cjfdV7J&)?dkSR`%wEZ zd#-(~eS$sTKFwZeciM|6&9j%--S&VzVqa)qY+r6)X|J-cw{HYC+iUT21En4IX2Kr( ze*0njG5aafc$T!Cw_mbf1v>1vC8LxgS)~jqOUjmpOQWPb`gx)>St^ih(ky9?G+%N_ zUMVQWq(#yaX@#^(S}SdkHc4BgI%%8KD78p?rGwHDyx$-lmrhG<(go>?bWOS`bvi_b zqrW4~F|bbzapX8g*xDUq^faDQU-BeMQytSC63MgmG}o~JP$>B+g&YY-g=3kc5?Jk6 zM|;BHKK~wrp#MFF6#PAg{`h+gsrY*gR{TANH2gh=bo@Pr4E#NYf%tn2gYcIa23xbO zPYDlO$5{)6(N@{&6{c7N*0Au5HD-NLuv-^fUlN|PF1NlceBHXn`lj%_b(eLwu*7=M zdRbV8zs<1q|KpY!4C#gt{=G^w|6lVtlXcKa$g$~|rDIMHnL(a4$EC|$&a2Bo9Wfo` zZF9)m=8(6|A#aP*5jLv`p+%GNE?}~ZMJQ$ZGnw{W$y44O-L`$SCbdpMpG2EF>Op zjv?QL{2xJHMVx2;734z5THU80&qCcNiN_#+ycmQYuA2w_^Tlz@=5O%7eKId1IYXSr zY>pFeN1507yB|aTco*8R4Ed#y$3Y$kdA!zIofm<_C__3w{$Juq;x@fUBk}edXcc-Y zK8=3)&~h)!rc;np@K!*rpChLXb?wOc4CE=O`)z3Z3|cY;Y(|+0DB~s`3wbQ$JaH28 z{g5X>1M1 z#5snOEE}%l?HZJS2IYSUIRo0RgWFL4miVufZxr7qo-H2dudrQTl$;4Y&vSXh`_NDe`E|UVf%2cAd@ke*;Jx5CQ2w%5P9-JtzmR;BZP;ir zzeRE<=Nnw+L&WDqvI=7smk}|Z``0uH>AWs1g(76s=3Ff+kP;wvM zZbQx~!`a%=SFZHxDw17)?hS#$Yo3$z&}KruY=p5r;XcexNJU5d;@&h z{3$u&Bjf<8KKB2h^yhg9f>mmx9AH@G>H+}0>a0pxsej9uR%sS7Y?iq|mE3~yj zeg*PtI`ilqLOY-9$Jz#HtXUf5ts0x(#LR{;kNoyJiz=de}Qp^ zhcRE|@nI%k&8*GWXbbI?#sta_fV>ao7wg`m4t}7LcL%INH}YQrKLmaZUpWc>q+cP= zX1{uTm)}0avrH?OVC+e_gbnme}P4EE=S!`dpQb2IG-n3rQb!sG{MX8H z9nty_l*P;2}A^$t%8PI>2N1m89+tB79v#<^FCGZR8 z{sPAptpCfHsa$9{qV2yNQ&F7oEqFh+@Rf*OE{T5hg6-`Kcw3E@AH}zJL0cC0RQv;v zh8bfbeuVi=@cwQZ$l6Truq=KV@^tjK9liJnzTzXS#4NNE-rm^4Ei{cs-yhIh%Pq-) zJW8ZE)^Gs5{*6eHp&UlEHeF>c%AqRX`YOE+#xD#pT?h% zd>q<7(3!Qp20dSd&OA{hexI4F?h%2bG8zF>Ka9iAP%8qif(=|0dGs2fVFdU`(Bp(0 zN8ew?I8Q?#{iyW;_zc*`BSujc_hK1Gtt3CdR)IaJ4BA|1XA$&R%o}cE#~Bs#k{&R+fbhZVB-_;9bbifz0IxXpt?xvP)ycQ8S@uCf7AS5BYgbWs7 z1UW-sKZrM=^L=Q$0j>qV4z3q@2b=+&GoW(@bk2az8PGWcqcnpxn{v6NDHkKK7aI0L zegpCw+zT4jO=v&!ueJWNOl{i)J)2PLIy7+3M6~lGoeyDUaT{ivpTuhA*;y)bw7Ew= z9q?D)7EfT!;&i|z1uc?4kJx@NP637B-$C18=2bKH+(x`DOWn&X{Y+O`7F!4q1W?Gibw%)0tXWZu$eAE1l*CnJsjN z{rLC153Kdoi)ncKYt;HFbH9g?KM)#jgX>Yg1a`8R=fd;`kFDt}` z%wjgrk(dM9s6_d>B$yJ~7oGB3+F=Xfxu&3go-09`rqq-^7uK;@;KeMsOXt65P&j`Q&B3gz=w=lBwXQ zE&o8Qoyc%PH0{*64qORl4ZlLkg{bug=MZzwEY2}6fK|*#tov=S9UMYr7(x6w9cNNR zu;Oso&ztxbN}4L!mx{qQ1I zfs4VgC63%I{W0&~M9Jyw8_kcI50Lz!`M1PBM*az%L*QcY+u$eJ-tcxma`q$V`yA_< ze#tA;@Q;Y4hl0NX{x)LEY@CChM(jEYQSoY6)VE==t2qudPKV}SLw*sb*Bxlvd&qx} z^@w(~|19T-59|CYI0P;R^ZI(6TP1#;&#;!CX*SO*!gwCq9t77QLRf-zl!5pm4Ex`R zx9{rwDmVl#2EUCmG@jz4{1x+W`Hqp8%j`t0oscsy0v#Bo)8;y?g`xabW1Lto@QGEt z$T{X++!C=7@`sQ`*olbp73RyB1&#Ui`g=aT(rB<%91)kGZEUdu4 zx~aqpy@VC?23E%x!8je8UWbOCL7O1HOto5|=QrFo5%*LgPQ)}9yoahd3rATd4ej9L zSl8{~<5;cj;NxiRuSxy^zSx9Oy3H|w=_l|`2f!lQ_9mZ^#eW9Jm`%7jF&(n3;QbD( zcn#z?Q2sU4{Q*{bCFfYY>4rPAImecQH$OFOSpzSuw zuS1*r^X?#~^F5XLq&W-r!?KavX1>C+FQ#MdRA}c-*h9VfAlnJ&i|^}aYQC|o!x`sk ztm_%PNAxSi+`WUD`ZCLw{^kMn_9phMoqQrD>t&x%z;F8%VrQx0)kOZP8T>ZzDtN0>XWnK=sg3sora>!blGH93p{wBvu6gTp!+$j#?eE}`}0CujOroReHn1Q}O zX=|&@clf+i}(#$vNUk6kq31h|lEY9zz`TS13kofLPJc{p1SV4b;hU?HK@ovSfBG1G86Y(+P z1>!QwUkHzi^D>>U`R(_?Ly$9BTuyRG38~#JR5&xAbK!_p@Nv`xd`7 zKaLSTgpvi2RhIi5U~MT*j!ev*I1fIJerdKb5wl!?dD#d#0~+#C<`;ZFU@GD97qc)6 z+h7}y@-Ak&z`ZlQ4ml0-Vw5=x9*tT#;0(;>K(1@v%rkD@g8XqP`7_M&_gOan897f| zCV<6aZ3Evz z4!&ZXjhqi5Yx?u?^$zg6c>5RdE@(5M%uMj}$bVm#xec|*c^x@3Ab)~dxsWe__k!O5 zUq(p@@=eGV$erL!@VU-hjttQrlo$Ssb4=RE3;}0xjsd+kya4_^^3OnS0k@)zHhRx> zew8$g*XDv{;}q~FaE&$#kn_L-_!aQhPL59ZXyea0hF^lO&Xam-IwjY_?De~7w*uUZD2E2{K7=DAz?}$}n*_C!r z6+!+B$M~z9b5V92W||gIfr*wkf)9WL&^iF#28hPSQ}ho*UlF8$iE>|nJTahHHbk^{ z1(8q0Doh7Oen|8@8m*b=RT(4nGdvSBLj0XQ{)%9x@A~=NedBj!PtfjfCKKDXCdtIM zlZkEH_K9sxY}?L>ofF%(ZNGW%x*zV}aKBYOd#$S7dv&kw-BnK&91zSpndqCcc1m35 z*g|Uf`6=V44HvHg|MtJl-j!h-ao+Dkcw|7!gW8DL?&uDAB%EA|Qw~ZTR#ecv$FvGTtQfw`zt$O0gm)jw5M(x!=5t?aQUYXa3G`$ zVVZZP>f1>~`frjGl+_awHj56rG1vJ4Bv|GFh>Agd5I^IA(fxM>`L@)ZZ2ZY({E2=Z zcDPMCT@#{>{#et8d&xbism&X)-jg*WNPd)|5B$0Ea|IY+*@1fNb*v@uct)+t&x47b zMCb*N4pAf5H@GuV^LK)Ab;_}1bSrh6nEe&v(CWn4PouP7MqUEL&qhBjm zNL~#!eoYa(Tv!QzrXr@?5&YGCz(7=>tP^ew@MEwauaOQaHSA3m#xOO^K~hIjF8YLpzfHn`DxK8l%-#?Xk>fS57s-!7wk#h~@Tr~Ztl z!Uv&}pe@*R8=F=gE30sL8J#zRS^fgRg{N^^qaPT3a727@x_}b&QXhoUwv}PW1 zS--D}7gWq)f;0^?Z&#|q%*``EjdJD}qPp~td8gM2VY(83a?)ug683$DnHig3ZppAa zF#;EIsYoC5l8#+Cu)-Ug{Y<%@5_l23qy27A@Y%1~l=6e>yy@zl{@XJ+fD%r-ZD)>4 zQp|Ty%~#ld4kcH{L%5Tah8D$g?ax_>bIIN!9Qw z3Oobq#ba4o`8g;L$H;>{wpRPsi|i+o&k(2rTs^-A0Oc(%Ob2C`LMD}^XaDd=Mcy^; zU!{3ogns5r5ykI!8=c^);^a|E?!Oy!+<(urLiCM@bugIvg>~Gms%`&C7B%;jfYj!R z%NF8}`s;u2h|D|@#>EC~aiHvwWA#gv6gK_20y&9lMenl)lKQSqI4~9ctRO2hwM6<< z%_e%nJo1YYKb}_%7A;5~{pjN)apS7RQr9)_)R-j(8TI^}^ijV|d869*mgO(oxdslV znQ->5(764;hQ<#J9b-aCk|E0hbDM(ghmP|N#*3W_^^Cjn|1>hMBz)?ueK=|Ub>>$R z?1iUI1Sgt1g+Yz!g__P(Ye5Tl6=1?y`$JPoz!nk+{wG!ltTTgdevo)8X0fJM+T0%f zlfY3N6xbs+4F~ZCgCC{3AaLduhp5kEup9+`ln(I@cO#R7Et4_ z(}Q0t9TMen!>WBF3bJCz&f1nR-wbU*I95SV#?9?UzZC+_Ate;Wz4?8+pE={TvGRE~ z^>q<(l?w!Z;)LTx2qeG*i@U|9qwdrsjcwtZ!907kaD6+crQRwauo>nT*`&4|SMG7JWA4x+v+L?P#TS@XSv;}BL%98uR>gia1 zjQf4S+2cNAg=w_=6wCB;K=ypHxeJU7Ll_Bsmd=7Y)t3oFCU`)IJ+o7FtGUQS;|X1i z!3?q?6QtMI;Hm$8Or*MCiz4eXmH(-D$Jj%af{kw(v(UvR`fmHAMy2RSN%HYWb+h!=nBD#5etqnaa zwVc-PG@nqf*!6H#Q-SK3UC?S?KScIfSuV-7>j>|CWcmr5KQ^MXa7Q6!ejp|J$D_m9 zjn*iaQlIji&n(G+^Zz^&xLOheb%3Y4#69huf@p>|6)_Yk!9^GFzIub9lWL2&uMu3Z7G80(bQHcl?hZn9duBj40badN-zxWUy}#n*s<} zM@1JL;}Kz0HZFeofWJxaj}z_3>eUiNplT}CCrkfuCaAbCa) z`+;;jHLwCJp>{seg_=W=ZK8ppGpBvo3I)%)*A76g_>Nn*t;o?WbIkyko;e{t1UjS; zl4B-k!!8SLdoj1afpdc5WTs>q320@r^gi|6@o%3z-E#@UIVE$LIRw8Hoz0!jA; z^-0Yk0=SvODR;(%6YciIrel5uRa+opr=`9!!;(d#-5k-)9&$s(yPv+OdzT)rXX!DC7 zK=^x{0qwq{p7t3olyexqFx?9K4MVIve#h~pENE46z429`pX&HuT5-KfAM>B7Ki;sn z*{&I<3G=#lKRY1&T6)0_37D?KU6hOB!Rl)H;W9kp2>pt>7n=m{BLuCaiK7w>?x1+Q zeo*APkQf^mx8t)FZDYq9MCI^{TA{oXF_mN7OXZ3`hP>k)!`b(gk*ZP3e~u|!Gea{O z7S%SaYv|)FXOwCW z1;V3J-i?|o`Mpd}KGD#4DcjD@^+_zu+2tj89jta`S73Z7Wd71v?NmTi=iVcvn{X_v z$pHU64B*@rGc8vhdP8l7jTpz!-`jp5({_E^K`+BmPVM4C&MZ z3Wy^H$7+fuRsriN=DqD1+^F^;a;t3IU_*PrKfJA=s)Tvf&OI^*ksVG6{V>g?)0H(E zep|+n9b`r&$#VMZzCeVY&??TXVY(3|q#1hScG@i84zZB{GsIKq^4DT;OG6iV^%{wL zx#P!^-&eLsZ3Dy}7@QpH6 zJq~v^Cc-I!!#$5M6KCyeo)XK%b`4AVeT>^pRU7mb4=6{e#zp^*pSQN^kD+*AKpf3( z(VB#5wChemCkE=P`>PL2?g}P9XT6Ai1{HsQu!g` zvvS@UbDL^FGZa8IYl_4WQ^pNrAmpucJSXAi*bxj6!W}vN4=6$ZC6b|0=9|w?W6!5) z6eLTr-=L3j4$W53!7q2b7r=5wUSskJ*=I|sM8#DRV7Z0m zXcjU|0lt{f?U2;+Q#&3TEQ{n?oE#D7>%ggn6ET648BWTNw}~oePZaA1IS~zu<|N`p zj?PU6=nHG}g3Y)?Ida!IGtJOI-=eFV_VisFSXfe~xiHdsuh}rtA@x0E z&1n!8$EJj%x_=zr(hS-Em$q$o`zx)<8?%;Bp|344uvRgxHnvaLL%RY;Ga-&2GPj1h z@j+*?NLQbfCkk&FVoK}d8FD5reyLX*fk-ttFBVd(hl#w^mhDlL&GCwaskbGu6&-Ws z@KMybe!20-u)rPJpU7QJQ3D`$CzC!iwsyo~NbhHr`4P%cYKneLMlL;sPxOuRBQ4|B zM#k%EtPDGR}q4Adsu)lMg4n3x44V^lqXqleS0Q z&DQ5gbU%Ug0xhJKlANddSLH^{7y&DAQDnT0?XaB?58Slh3BOWJruLUQe{DQ9JCVA0 zne|?g>8h7{$i_W!JqfNa|AbhzDQQka9R`V>=sE6zndV&FGs{Wi|-#pzfqBf|Bfpf63tlqd|IS9*2vddTa8n;n`5- z@W<|IVa;%W(23Oiv?ciP@nw?bYPGx(kB@|W#Q2)Xb3$8gH9=;?IT#vU+(vIcNR>+4m$fqU&%ZcK? zD0hl}o|UovcAInD4N5b`59ifWUjuiE3;qM*xe`i-Rb*(%IPbw?xnwT_7pdrvJyEqT zY_eN!jXH&(Y=Aan2f=Ga+?5}po*oXV$4^HMkX-K+ok3Jc)YfcxxZv5`bd+BU{XvS^ z_6~u2>3_hV`;xb`E>>S)`+fSv_W&rP>M+KZermaXY5D?mBiN~sLu`B6)bK@I+N;Iy z?2cc2YC;6i8FIZh)Aarw-_cR*y!Xdo{HlEe@^{uuCr4sZ+uNrz^WaQWrfj^*;P=io zOFBubNtp1$ns9_)sDk$ap)j0Q`r%!isV0PXpL57 zUrG8+w5ST@`A8P#R>1n7`d5fsQMVQz-<~IRr;Vo401=1D(bm&}3%%1cA?T@x^JgAf z35$%?tQaL3#U?_#^uI3|Y-L%0A23b5LeMimXprJs~+%H<|(J^-7#?X1!H;qwW)`GPD_#So7#RLPR^oNe*t z^6-E-f+EUN(xSM0HkQ>*Tu%jlKvKvY%R6_lPY&+y7|B_D<)F(v$kLe3b{>hWQd~w} zVWVRk$)XeshUnZAS2XP!g@QKa?vcG%a>aI283LI?iEBqvbfQ?v8CvI(&VJ>h&|^kR zY1(7XQ`?$Ek*QgAtCft`Ijcn3t9-dX8)9w>3T-I_#Ub}-D!JIxn0Wzcd9%$ZDJ2CyY7_pMd)v}Mel0>qwnc2axC_>u)`=1`r2SKy?7bKTprJ_X&B7~5h`6-g~6<&-dS z-xyT#U0Jdzln8MIYUci?OI)?oELZT_K|cA1_Ri^3q|!QXJlZHJZa}GHN&g!2AJK=e zwS8;uEF;xzHMnw)7mX8nR2wAuoU3_j!sA^l%uK)C*iEbm$~;s&(p537KOUej+o%*%7Sg*K)999Vb=F_I^n?ONtP zIj}Q-OhOz5M)nqMk0xTSmIN*O;r7~W6I}bTo?vsqWJAygsP&dIoCi4Qe`1~!Yh(R^ zNd9lk@1WPX7DxRqI2*q$ln?^fPX-Xy1-=Y%{+}zjr=Nwsuf08ed;QMNHr6$*Jr@UT zCM@0MLXl_5wc>ZW48;0>w%~37ZvYpoEmAKe9(Y}3%b$BaziQoUbS2Q8u^FH%VHSU# z1w{8?B%?nx=$q9-E@R^TLVz4rSDj7h!QRHZMzyDEh0(T4t85A2?)BalyykGn7(ZWV z*P+iMk0NG(6YKe@kNjTrK?w zJuzmZ%k~xF%3@wd*>X1(=kv{ccVApp1hG~M%iy~&my^TcSWH!f2liJB=#gM&2ebH# z`JYk6TTVmIR(|~#Hn6-3u zu4!BN7|(#coo)Besmd{O$YGq`I$L{d*N@+$MSA>W+~wN7x_p4nj}6*t{+c*5bZXUc zr|irlFRSc38;?o3BTjzL509dsz91$VWeJdz?g8M9TIDYD$fhRes6#OOE@Y`@xATEE zI$GM(jKsyUIA61+;VXWl3>5@@fVkn;F8>2Y{4_1CPT9)aHO8zS#{SI4VWG!& zv>0qtN-EFhHKzXaI&HfnYHZC!$y6}c$_neV8V=Lcz{l3rY{EXqJ;dZturX5qgPERN zb^VvA8@`AewjOuFe)q4HStQ!nf}$Bht#ODbds4AhY|?kLG1W$E;W5|7-?O8iW-VzY z`&nK-Nn2t~anaP`1Tj2@1zn?+`L+0Smbg?D9x^)&*@UZKW6Pg`7nKleb6&E1ILBx% zwt0fjPeP#_v{|b6Z3(;11v}5|LUUP|S;~NZ3Ab5`M&=QZ&>;@YOjwpl;I4Mw%_Qp) zj!fKqZa8&i-+gjKDO6|GH|KJiOhp~N*lm8|)HJwbsYm4ErfMtDkBGu_aWMLjOF2W(7qlbYkA7s@)tHtJFpQ1D;(2MMeT=TE2G1 znLORn9w27df@i{jeZhOmLHI)WA}b;V)ueQ+EI?`Tem~zOEe~%BHmx?bTom&{b!QX8!m%0Jl6EFW$APqO1 zsx?uSIhDvl&e;u|SRZ0fU7NVj?nz`d0p6|bzncOnkfwg7&)Ys7zD`ZZ{ zN`uNf8PY0BNs;N6#W-8m&@wd*;k5wiAl1gz=0+nQDEpj2Z2jDCWJ^e`)#@_VpfP9fL^|WX$0e zsUxOLTSmp{W!ekU>~k-=%>CormZrsNBTs1>rWk7M4HMQ~TjPvQts!Yvhqqv+U1?LS z6G9DfR%xQ9$V+TF>2fcEcWEzCXQ}k#nD22fvtA>J878LK{D!LON!m+ZMqN9AL#;d7 zC3dR`O`rKn=CfA+mr1YT*tDyOr}b%Tri^EYhC%Bcu|vo^Fm^WnbV6YGih--WQp4E! zuIVA=9V$D!=Y+0L-@BpD4&?;4Q;1gT-60RZ30->R`mAxfw9l$GW48lMMu&|;H&oJ? zLw)8StwF~uZ7p7*(XOu^K3IdC;JT?s>hcK1DC#^(`AX`7QF*+jriBUECfKHezoo*Z zV1uDt!CdjsE(k8gUU}Jh*@^s#IFd!ULKb-})cPngBoOe%5F@vKAHwvj~kgR)WyCW&Xa|ELuhl~$CCwZ?f538-x^S)XS4$Gs2vBw3y^ z-cD5S{5*P8Y0A3E6?~=A#K%dUGc0U0l`Q5q8%x$?#OLBiQ;)`-lotzA(WuSZGA^A% zPYeLlSriL}vpN(Lg$f>XOZP?X6aO*${TnA@4x>&bHic4Q=^tk(Hx^4pPP7(Fk5^ua zVk#(&z_uEi2|EW$bDy(8e& z-(G%4Cb*d+<#l1AW*X(L4Puj4lIyGb(Sk){uE~aIZkv`G9 z%Eqi^lVoGtyh8mJv|?Lvo?u$iY1YWle!;s()iAutteO5{%Fi3UwQXlIndUUVs?C5| z8Vxk2n_)hz2TD&tT+Qw$$uU{lXk=&+mo&|-mUDCAk2rMOcN3vcLLVUw&xe&6oL&1; zyjjD)+dY1;zXhDrM4Z!5)--3*?R0)k)O{T;`~DuzlvjHL@O3K*k>B;(!cvPZTtDHy zaEo!DTIzK_HPrl>v%r%nPGd>Im{V&^XPahQ6^1+^(`l?ZAA#nMU+x;H>oim{((9{p zv*yQ}Gt?WZlRKw*Otmcf!BISfFi_`qPV~R<;5TgbxV*Ls-^xvcQ zZ79BMl-?vY{0+l@!!ZMlw2v})Zv!#S!+eXja4}_dMh@rr+z7*s%Qqa4;TLkF%?Qok zz&aDHYobYxFDVHsdnAf-63?h<> zZwXh#SOzJ+Nl;`F99e@v%@=CNc=d+#Iz6er$f}n^jI5Ow=Ye^%;I|+(RLLvi^MD`7l z;-v&d=)M&ck^L4T61BjvcLI@pO{Dm9A`(tPk$l1G{nz+#Qhp|f7{WA;196I&KoFj| z$Rr6#TG-!Yf0-2POYq}$DeZt?Mv^! z`6VN89fb`qd+06fbRTEuLJ{((q?Yc%q;5YS3V_W!8ypnq$9M z)^-xVntr3IuTxDGa||}eWo(bulqWfi#XW`ke7c~n3)vbxiM51zCTJ=9$W5<)cArsG zi@vP?v=wCE57D_8YOS-)JOd)LZ?f9*v3Ju?I$Fio*{GC4 zO&xObq(gc*4Z|lQ#+iu9$MLUoxbDETx-a- z^_wOHyPZ7b?`2E;X^@7l3}I>aZ;>m(KL6mG^-9|{g=%Jy09hfk3^=l+=UqO5V!L{F z_%h!SuZ@E}i=Q%uEyp(LB3H}2{K3VuEa|dWvv2@8z9oT%W3Y4?!dbjm&|;tmOAf}g z&}%ARo@g_dm!#A&^J`{TZqa>F75bPtXH{;}J!@6Io%O+U^5V4SXs%0Rc2|STzUS)S z40C3iysG=aDr){&*HuAo3(Sk+9P8*6skdXZRk`lzAFm6lnZnMgG1CfMV#6mvRs1E# zELnLC&M}j7;9Aji3KTlUH21hVMO##n)e39}@`;W%INarRmig)BrsY6@5O0}gX^FDb zL!)JpW(C_R_Cuv*#cJ7OdEj@$$g(44vjtHXm8lA}1sNAL`ci^ZQC8s#RsJ$w%bL{^ zAJw-7`cuDG6@2B;c>@;_e3jvO2N$6%<&t@e7$viLjmLRT7hN5B%mwnKGP(+yQ+5}X zkLvn))}$&&W#xla6tb-%eOJx_gGIdly7knI?_7eRs#aG1F&iLmH%R!|g=7HAmM+M0@#?_)o%!lW@A<#4)6FB*6kp7x zjmyjL?y2qT8<%pI1a39$Qy(iESD(8C_P#ENZK3P^m&i}0p5wfi+4gd6CF^sS*iV(7 zle|~D_VjHj>(Wp4o`W9~ou{9drog3jYxd#jHelYf{0|+erA5S3u2+XLK3c6Qm; zQo}tDuO9t0?8ERYYUf}2#hg>}SLP4k`&!$p)JKwTampDwpy*SxW_Ig%;Z>_stY!fl zkfmGGJ%@Y$1Sr@nWIv+?RD25B&GDaJ075s*+)g%LDLcil7T)fs0NtOWgwx%pfv<6V zm9fVK-*dZK?l|E!k*{j%xZyREuZI3O^0oX^$Lz$4OY7*kbTT>*OWZft>TSITAd+;IJld4*8eazuwPd6MFiJie#e!apWa8EZ97v%}CE`McG)BO~|-h+D# zf2;cd;aTG$+>y7*VAsmtC-t;>Ee5ay6m-mNV%gQR4`!Uo+!cFX0hl|UI?^`ZHve3K z*)>1qu@Aq2GR`LMFx+7~V>{(KL^lnul@HM&E|CF1*jGZWaO9n-Eu?b_p#j zYr8fNKG)42{D8Gi{7qTAmZu6g5ce+roveFFhtnqb)xVSzoyThTZV$E2t8D z7SICdD!vlb^w*V)^1IFFkWvR~%`WF=G~!_Bo{N{Xm$jF62PWZ5&SMuCU4*e`i|o`r z!~H!AC!_>~BccX4xUw>uynzBTm_pBgB>Aa>wG{Iz3UI$mv3fK2()S|Ts-c}GEo4&N zOQcL3mO9<8yzQ>MuRcDzUlmj~c<=AaxE{Q>%1%#ID;5GY#j7e7mCh>Q=R+(>o9b3Y zY|7b`GAd~2lPzhQn%a_A#cV2?mDVco=bIK>=AGu97J^SbPG3$*T){!>FemIkGx?xN^olCnHoC)rq>N!<5; zFDVFpMR`TpQCO9ThKQZ2VJpAGCF6Dxe^kqj%5EdUCeeoEiAtC!aVdrUKOwVi>|`TO zBn=%^Ocv*u4Pgfv2i!}`a82Fo)XA2wQSYe<1FY(xwZT;TP#}90WR^>8$=yX{{6!9` zjiKau++DxIj|nk|z^6@S;;9+Z+}AzW0t(hC}pnqlFya z$fgaEa6n(8dcjZo*G51g7yX5rioTDs3-n!%vKj-u8t=bPC5C^Kzp=YlOs(9~m&)2cm9IzhO z>=2bBbYCrX2CQqu^cY0GOU8pl%7p(Op9^`&HfA7_#1G6iZV*(&#g*~yN)JptId5E4_@6I_HB3%(#=%%9T^Yi&CHf*fx8yD9GL zrWY8R=J>xU}>Bt#TLB5NpM0BKbK zt**rC@*x+N4B6}$VI!QfP>A{_fM7b(U6>1w%!dK%RzfKiKDZFp+RqVX%9u&R7%E`` zj<`R~U>u4m8GFP_j)Gw?m4_)fZCslC#reStgE>&Jv4ruH2b+G5^3EiLNw{9!^p6vX zlrbHXTfI(kJS#cB;t;kG?M6Nd3lBfyZ^DM;3;PMU7?wwndL_A zcI5wTqo$*(7T~cAM2sse6|#w|I4D>^VzUA_XAQ}c6fZ(OS8e;fVNj#^9d8sYik*c- zpgN;D>o>6YfQ$JJmgH}*j9m#AVl;|m0`*>KU1kkEoK%%mm8Xqe6cvCv`Z)S%uZUd` z<*zhaJ^JfeBduII*l88(vEPF(Tgnes8zto@CXj^=w%Tz;n~g^xI|~dk-ps96YJY|O zT4Au1i&3+DvfN)9k3Xk-5>Dx;%#7KSe`70P=2)_AcNY5}|J91R5n>#K$c={Qyr9fp z@URqv#EYadIC*1Yv#ZzUs=rnWgM`}(M<6pG8n=~rc)abJ4$QV$tBN{y|-QG2F#eM_p|(+Qm#%wI5KMea)O1 zqPGo~8SG?FKqmmM9VBIsUEQP73bC{Uu^yylk9*mp(+c^t^MfaGY~OK(X2og+SEJ~> z>OAYb^E~jppz`#)dIO$JJhOALpsepmp7@cEG~-AZIR$64woc=G@ZYB*ppl|s1)D(D zacnqgG(*{6rP-+KLUaoM#^FL?u76nbp*jpF2_n)EWZ((JCsOrc$RosH;n3J2BXHuB z!sCLF&f(xO3QmULi~2H^CmW1S_8rZ{Y#h2qVYE66O$DS21OOqqU4g5VGWZXojCp@z zhF`^C`y+wZeUIK`U~=gk>`vN z9Dm0J@Zzx}!W)A22Jju;;bw>cdL)}++iGEmhR^W3ksLme&j!{mq4VN@y2WvbviXVN zk>>~v2qm6;S&a=VY&dUMFxVRhUum>XnICQ%{)sXb!w)ezS|Ur)D&}@Y5^K)Wk(amd ziDaw}Dzwkf(|KE_5V!o(ipHoqU_*hmEP!vCiD~cOAa!YlTt{t`s-KV6EYC}Rm6!U6 z`;uhfQx8xOGqQAHwsdjYFH$Q+ub+jCk|vAPWU|On(<|DlrBIAqC&$gh$A2mWAm%xx z!4(SVKkz~1_kg#+Rq%(BZsXeQOg$TE{iP)-@gARbRhV|2$-l@iyvUDkYhm6oKPxq_ zxoeD`*A}lPMP^_klyqizO^@*A&&m+~!w9kV7q4|U$yr^I8i~)RD@6C;`<9^UyBukRaL_K2 zJl;PAynjk~hExbtzY#1H@DvsCW{Wunz6AxmT`B}dW!$DdEP2%p0rlEqISD%jQC^7Qk@U1j(H&Me?Ld|9>fxgCs@i$=r!QY2Bz@%wGh{q{d<;c{Nq3 z9*R&FB7e~0p8fZc&0;S?HZ7QKWxD@lH+B5Bi?Yg6iz7#&U; zQ?9+Tz^6^n z=cP?ZQdJCR)086D)QJ54N^FhmWsOA#kVW{k{L~i~8b!`=l8voww7C5|tG;&@Q|L3< zG{w9vevj)yt7ehrIZ4yH+R~o3&=#-n73k35z_T3ZpV_0;B8Xd4Hm)m_uZ!3m2< zt!a#wLRtioYT;v@4W=OkC_dI=;1jtpB(q za{KE}%Mc(P2V0qo)cA{BZKU&H)8Pt;xGr8T8C+ZPD#)tBD#NOiRFj^UUPdiHp=hIQ zqiCaQqhOZqpG8#qqd>Ep}L{6p~kDstIDgwd(`AkUNhm;5pm?f zN`KAO!F<)%erwyoO@E8C8Tho{>29|f`gHK|{OSePMSL{{c^&;cN}VkixLgy~;hh4c-XdkYtd$)Q--nC9D9gE;k)J za(&}Jqeu8cXtA{;39G19n!i{Fm-eF@$cgQ1@|U(!z;^tD%fF)=3W@FA1?%`Sz;@n) zON8=R&?>%%j`6Ac=)CZ6B}B}qxUz4$n3lx2-pPz_4dhp{&+Du(o{fx}m|cyrY^W5V5I)wuvXgGVw8ogg?297x^qtBz*~q+U0ZsN0eb8$7B| zs}qW@z?8T1A*h>8E%A{o&H4GD6!Kbje)n}-DI5L8DypIw{ZmhjOB8_%rj)W_KB1|U zl7?Tj?ixYU!s0&}{ei{VF1YjDrJW_dMxv`lcdUY%(u z-GJC_N*1K|U@@Uwq(3a^nov4HBE%Yhkpa*rLWFra(|RD}5NOh%nLc%cjyOtbjAEF% zU~D0O2CY<@any()@IDfQx>{v*xUXk4 zSjym>V7;J*K94-1RuUeRY?!HF%)W{*V8y%dCGef!d5T=vS>cYd0iut4|9!~!B-;@$ zJg&G^eGfsu$hl_xsNM2&hnH#LX=a-<^}k{%m+?;vIU12%dPaIMdXUxp@n#gEPd@Zz zr2Z9>XJ3> zmU7iAnR@hY(*=ZlrDZ%P0HKLe;`u+~&$Mz!V@Mb|91|FCN65fH@=@MH2~@@qV*Icm z#d?&zoT`0s$NxxkmG<$PbN(&?z82Q6wnj-mv)(iA2xr%!VmVlZBLIKn(4dLtu;-Qq zHFy5AANZXvSUolT3YQxG@H1{Rln-%_4uY)*_2i`M8m=Je=>CI(eg}O~Png_f+)dpV zk+8@Nm2q~>1WPQ2V3-M}(u#2w)jk?Uk<)V zi>+0;#)#Fzh%l?A6K8;5cR9deu#x64)CRjJRM@i6YPb;{zZuCAnilu~9M`VIWC~W# zp|q0CnO^$`GR~{?zlRgRxG1NHAUp#rEb*@^ zSea2L?Em~*=q7eG^h!X!TmP>Y>z~5n%%z|}dkNbq&xP)($*=jb1+2SrwNf`D?^po; zB4VyAcrT7h2wamfdh``if(usGYL3s2v}XwMO^$EMTgJ~H8# z+x`0A|H1!X3}$~0ok=v;=ti<&=3Dvdv>r|;=a8(X-Rj=%-K^+o@i-!&QE5z|LPycC=6*9A$7)7#wI3TRxQN2I_(?`?vfkofc3ONk zc1lvjmjTVuQaLqj`0N@!AmY)-924@Qh=Ud3w z4Ri4wODYpha@IB>LX0$@lT}iy{IHm7b4!?yN-UJlD2|`7P8SVfhq`&Zc6zvfcyM`u zy?vOO$GG6vFn*DVBuQXuP(uATpj}(B(l-k`=!jfo&p*8XGmbPRHuYpa9XV_5LA!R? z!lWiTnE%p)W!X*?a;lzybk&-`YRpBKbYz1|h*c|v7y@=|vMX2n_y+g7a;O2y?`@pu!yA+8JU!OUfS z6>NMK=pD+YonuqqT3Gt~ti7nEEe&Gu4PP2YgP2`5rb`d_Y;NyyR4Vd>Y&ZH57GoQ0 zMY?f|)8xL)#C5-OK94Ex;=Eb%5GI|=_lsef%#b1RsSY($-**|;V(gbYT3q!_dO0n&=hGmNBPBViu;y2HG` z+WOMci%Wb#oXjN0`Mad0H5s{{qBNS=jT^@_B9&T>i)!+e1NX32Z*u(}av??su)1>7 zZ04-m3wcwU8y?jyY>^qWo3^{x8H?0>>xZRHCU7&iJx1Eu@SRw{aDkM$#JkaDG&mfW z9OkS6t6GgtP23P-yMMt;kfE7!tA8WT%M(|-a)b1_=6@7PW$lRHh2#(P_d3hUMsFub z0>{U)-eFkYCVA>waK~Mg^jt@LXzH`+r+>oBtg{(p&XBN!fpBi;FaUVWPGT!LM;yig z(Ao{`|FrtU}jKX8ncB{3p zDqc-l;^h^342S-q^KkVrzQy4=q1GQAV#P?Uo#z6p{k*rSA?CwYGpd^VXo4+49TI-%0qJEzUMN$I3|hW6Z!9WcKgMvI}O z+O7TU&OM2ppLy|cz}{2x0{OJwh+LmC)^@*3p* zJF*hmeR_DLHe}nFN(N@~|B{dal z+L)LB;Qyf?6o#Z8 zgv3$2(*4Wtc@Skv7|=X49C$l;97&yp$t`a#VWUT?|_+s*4(SyX-9!k-vFHNw!fE;8lZj@FErpvawz7GX^i$QrY2^`e8Sf#j z6PC-)OjJINHzuzHGrbM^_ubw$A$(}lGnKW?+-S+?8~{A0o%^|2VkR>Y?E;WAK28a! zui98ky69@DzS>oS<`34jbG}=;MpPM8Yhi?d=U&tPtiI_>Qu@j2^Kt4DPY-+I@^;XZ z*@NHY)3$b=lC;Fl4p_O`zSs}49rj7%J$>VWym>&aL4{Ve3TO|7sd8mS%C;W2s~xy9 zy(k+UG)hotu3JOC!tn0nrkiYt;Z(6o-|E*^iy+8+oafpr=5>?!#cYJl)-fc_@?u%y z>e6klEqWx^x_ymH*C-_?Zr>9lDI+TrHYQmQeVUT=y|JYy3HQQ*r z-4%y6zHAMw_=f0PF>?>4hljUUnz}XAL1!o7uQbFDrrjHf=WJZvI26}iF3`Z&i>2E+ z(%-tPyLiaiw|>y47526BvR{HEGm`1EixWedMrl^!=gOxt4>d9Q=DQS^?W|vJyJSMM z@D*;(VvhJC5r)~?Tg(4!TXrU<9ZE?uy@~NNr}^9kKHZP!Gq31Wy|LqRu1-CRY{~v< zlhz$sRepjsEss@dz^gH97uR7zID0=0vse4lZto*teu zTDp9#!$&$g3IGY;1z1xo-I6}u!F${EBL~8`P?)g(BC?x`Vq>sQpJn_d@lQ&M(T*YD z5Sv#s_eGG25}2GtEqJfm9R6$eVy}q$>6CTzvINt{s$DLjci#PxSz)gFK`bmbspUlW z@4nx@7#jK&W-MrS-PV7`#cZ?O=6dr42QzK!=8&Xrg7S|Q6&q#-Ix7_n&fIg2k;cQ0 zw6hI#!0!mr1%Yn@M1Uha+TEL4P$r9hx);|O;Z5X^**c#B0~aAx-oJ?2dv(MY{@a_L z7Gq0@ZI7PwZFy%a6ei`d;#WXRj8#J1^2o1@wPo))z*|3qhdk{YcYKG-?3HI932 z9Q#byk}kO?%omV5*=TQ-ubxMKjy#ARmtA1HC6{A@B=c)*3AV~V?%ub7Q$F6e&qJx2 zx}O;ZX8h5Ogcps!mmF6gPBc}gYC^ly)V=nr1xFBfLjTChOpd#q&RNC0;Et8Vo3#-( zR75nrTJ#R!yDS}&iLmQTKbDMo!g7n~rT4Q~oo+r11}Bv`@dCQ_67B5o1W&U}V6|Nd z92e35QB0J(1GlSu@Gr=^Po^LiVK!WEHSaf2!Aw(!2p-uk0T$^hV-nTeV;$+5e2c71 zlv(s1ZuPvn_VRBx<_3l$^u0tp`n5)pz%)wV3lHO`{;1%Kl4e3C-WpJT@Sj7Mm%dAF z)$l1&HMa!e7H01Uy~3KCt8A?mTbt|>hks2BpZ_io1~5;Cg=N329qG+-ygsI`w5#WF z_-hh9&E(l@&rJ`SO!|eIEnKX!=V=+dT(0}C#n0-UCLMHFJO6}QS?XZs(```uxK#jc zH4Ft+aE)4e+tt_nm+k^ji!Za-IKS*Sft<}W3w2I8bn2WGCS*B>ZM5x>b?FL^>+aJu zd+`WbL&+tyHq{O}-Zx@7ehtRvUUvz@!vvewud1N&wN3_obktPUBrdZdmyM#fGw-$E zQ|ItVPUxCpTXJ37Ee;WwgLY$I5I&Jz`6*#x7Z+5LhV#P0?2P}z+FM4&(KT(ONeB`= z!QBaN1A|K-xVyW%dw}2$!QI`1ySux)I|PF3nc;r!=l$Mw)>-TOaTcqmtM}BdU3FDm zd-n`I-7|fouUZYS;}htT*Fk=Ii+8c9IWs=igb&u>-s>rIBeHT7@BjW| zKBAq{-ZcSe7_#vAsLdJTZylJP)Oc2YI+A5Ah4oatg1T6;`d}o#S5KHV8gqTbK~A6M z`q#KOXaX`WC;otib!IG$_h`}?f~U)(1UNMLT^ZiB=CI0Rpw6RQ_OG%k63o;UFK}P1 zJ8C*)I}t(Yh~->+TotbWR83G(vC92+p|CCU7S=mZ99Sg?Gf31mSQr*qAku7@z z6`;&oFw($QQ#a9^)CnEtY2%x5gGI(n&Zdj7D`-}d;;_9rHD4ogAeoL_2m7H5G{=sI@9WE$d-NG7pey(4k{Z)N;-AXSb@fUf(@_d;( z-rV!V(?;*A8Dqek?b7kk2=5Pw{tn@3xTF(Abr1BDe zvWXX)t8mur?L)A{&*S2V7}oWg)>_@`D8Fln?1kxXR+eG~6?9m?^)x5LJooksJgq0j z$5!==s+?sDf@_`8xUn32Zbl%EgSx8;>RTSLqo?|d0&vB+9hz^S$pDe&xFvqiX?o-S zs;C+6$2=94%g%k=h&VJ)nS*iL$no^L@4n+&y>hocotnn1lShRLoy6=c8NbfPo8Bb@ zW?bI4TNW|QjS&}UlB|EU4 z1kIK1SHo%5gw>{Do4ry?#UIOCmqR2J)>d5m_9v_F+bG5((CxTd7vf7ho5Eemte!`z zS{FomYR>g|SUio2NziJ_BMpG_Cf?-&8LuJfqYeFIj$Tv?&U(Q`x23j0Kt=`UtYoEi z??n|YgqTn&YlCgoOQJ{M6;1*#ERHrur$<>6p+SlqZ=AHdGR4Vpg-3OP@rsY^V_&i( zbGiHeVpR^^()G1=fTXx5JS!E^5|?pba!LtX^VASNgmv=B(PZ}Tzgh9u&~tO9mZlF| zmUDI)t;b=@r){-c3uW<=J#G5VtJXidf!gi60X273zV&14rm2p5fm1!9?&;cXMgyZ% zd(TESu#c{0IeuTANxW|C)@4$MXHe|10@oizvIY&qY!dLVheTgl(EgmF1!MCpsxp@y zMi;LuDZOiNd4MUI%!;vU!{!Z-EC@^>-$TM*q+mOktC);Qalx^KZ}+;K912p+uWau& zA5;!$##i$sxiMI1pa!hqfz}CmgKxtaR4pHr2_EjA$65-gUblWD*I%A?I`(Oyc@B)! z;iR?Mb){*!`}&^wtuWamN+&DNCjULKpQy>bv)$)rYKHS9!;7<$6z)NH?GdE?jav$s zGb_9)S)Dv}AfP{PsO{(Uy!d!OaXU;0wPUGj#hnk~JhGmu`nOV8;b@5{Pqtc-M>zE9 z7>(f2fumhJ?_$sbLQ?gW0|z(aevhKG|F+@rWyamu!y3~z+a^2^ z()&H*QkG}V^W|v0_G0hO!rC)UPv&MOlWS8p+apQ`)h$fz^SjO}h_j+lDF-^d-5<`n ze<2PL%jw6BxF&dTMP4xOOUP9aU=6Jd>>cb3buHgSYdtdrSSChhCPqRA!nXr;LI!n0 z76w*LLPCH#ArljjkcE{Ubil|8YG!68WB~v`M@-D>gg{0Xu*9ZL$jrtDRtHNg?1Vr7 zBj|`3tic4PK zKe_;BkfTfh@TdSF$RHB{>?HvB=I~oLAQ*{%6j(vvva+-P+m-Fjfj7|ELGS#>AUik| zkXsIXJZBJK^r48cmr8w2M700Cw4}V zRVGkzGBYp|0@=X%WoH77$p!!`f(ig+2vn>8H`|*&80LS#VPs$f2ma<7NCsu@Uzr_T zn(Uwu|MMO=?f=LCW-tlfWKF{VO&_NJp%0icAZ*`UW&kyV#sjHM3af9<^OfdJ5GAhP~TQ!qin)clu}U^>2y1kz$+0MqYZ;(;j#CfmO> zd+PyW7MN21a_L_Zf!XtxFoyrUg2x6~1CRR;gZ|lrT0vw1v*hg0AnvKUTiglhoWAcQc(3pR`z@X?OUL zG8FY~t0}G#NJIn#(zKRI9oC4n8t2>jo9I7$1Y zqu!hL>UDnT)|5diUPYto7DB@wwN2ur#~BfGH{$J0O8OB;PH+FG%}2SeMTiwkN}VzM z6gjt!D$N&~n$Q!6B9sMkOA29FRM@;-L}f}yScinVE56tBuu@#X8CwfQQ7!`4Hv4ug z?r`CU@HL#M@85foxv!mRv|DTreA>CB9zxsr6fRe~BE}#~*40o5?Sr1Zm_cf#`x7gdVRtN0bzyhh{6a2&3gCQ?Jdqytdmc? zpNoc~cV}yl!p18IqtSM5=`4Ajde?clE7Eq>UtljD;_&(%>7Or?&QWLuXRc>!aUOx! z6WZnEhr5a<>kT(ue``70?pD}IJ$}AmO7mDwAL0-+-C{wAR%CHcM@pS9w*-d_hHY~P zK@=8bcnq3W&@4RwMGvck+tjOcSNlR|w>gYau07&%U!Yk_&q0p{s+P7QiZ0hZwdV6_ z9*g|#K(J+q15Ee2$fK92&u+&F+S78Ld-yvx*-Ei}$NNk*6~XExP3MvO0FjnpW>QT{~H? zF6!n^6?N^XSK)tgn6hM*R-t}s;i>(pYWlmwG4-zK9`8{r)zyCUi&K->5YzY37A}Z3 z)3v~U`DQV%w&U>(IaBK~m9`!9OKM(DaXpHPj@^1fUO+*74uRztqkVP7)|vLa+a3lUZMd|Q~dp2H+{}~I7vSj)LEz-ywe@rM$<$- zv?tCA+7yI?VI5*uhVY~EZ-)lNy~xypVOcMpqd20|zc2}z(n5Dq4JPF`kSK6kDb;YZ zK&{(H-e@Q2R^aC8$~WUq$c>)FFEAfJc#xRlP>bbR(V&F#hU>)MW#LyGdsH!oD( z(gzaVC^d6`zBY~ifM11rP2ot|`^~j&aWtDD3|D12jNTOTC_b3go=9ixp=+y@zFYa2 zc9rpcS$Q)2L9<5emE*~N6SZklCj741A?HfHiP4>Fwe`uf6zAHyGsF8SoaCiiWLc#D zKruPrE4?juoiC&^u!}7|n>QuaYwwGLn6F5fLE9Gk$stPw~e=Ydn; z%J-<@TZ=)3oE{qe(jU*40gKbEc75Wn1-n;irF&ke$fsEBqYs5Gf)Td7b4YgOl| zj96yM++1E#K+?1q37l%CQWd|Yf$!2FqN9ytG(>SU%8}1Y+{%uR+W-PBG13g&Gu(Y4 z%+Xi+8q5b{*k1&jUtkGwbHA7bnNvb$>B8pmX2K|ki)G1%@D==m3jg-{-4NBk&lHyV z{WD3NJUmC-Q06qndr7;p%*!hR6Anp#CA+e0(wbzdOcsStY41HU%!**ugl8v`6k=X@ zlY48^jred15tl>&)34&yjlfBo1Kjda1*9}_gbCLfm^A6?>GlG2GoQLCToW7?f#s}o zS?E!Jrzx(356Kyx3FvZg4xelJG30TsFv~S(5V_+yGW#cet~edI=E-W1n_|(wB}{Hz zogaKGA3nr9fISjxm;5?qI}xWLoxPp4T0{Dbemx;~FgQ_vh^iLwhe{3c`D5A7^dU!< zv_#JsH&e2jNGYFk@0a*FIV1U*OfBPNbbbqW~^Td&7-gGuAVyO$0-r zB2zq5d8!~&d9q-de)63MlpBi&I^{f{cDDJU+<~J5)|J}>?iJJl{==7NxU1nS*8}AP zxI>J?5{=h5xP+n%>L_=TE5Qd2O~}?@s44mh)&sKx)(Jz zoXl4!k94a%`fsmkZSc>C9*_?NSF>044mi)|52_DdHIQzc9taN^8t0ifSBO)SsM&#cex56TX#^8^#lncY_e6P6A* z4xIDu2TljAR~d)eQ?C~`P~Byf&f9DA{a zFDdCMq^$N#yomx6;|JRZvU%;v$Smn;x&wd%!If(H_@s2^`1JDx#)0>h{uS{&_m#|p z@zs~pfHnzU|F*7cMK{a`Z0--wEZndjY53y2V(ps`P~3>mw9j16Fs-7}e4yv}0l7at z<8jA%Caz^^^RMqd;6KAYxVvFLv|qtry*9K-kLP)bd1dZrdF5hcdik8?BOM4HWSAmd z(O-SJs?c~9s>mhCMmkh9N!IcWVds9ee{dJROMThr%+)7J_C z*tD)KnEX6J79Qoetvtq6I#moq1B(RmFKze?Nqoxgz>6(3w&&GQ@myF`)!>Jf$^ z75PX0kn9CC?xgUi5?dpNLxY?sELHNDh=C4x8hk)=F?SfESMMFeRYU=wb>ONQO*+l=&lSKYN)YY$@m7e}oQf?eVcM8pb?f%Y)^t zc&vb+7{O)&pu%ZG|4ycL(fOEiN)D(n8d6}h!Q-=LO6&*t34bevfI$pr90}LM)7koU zO6Gs&^R^pK#-)Q@GJE86_My=n*%hd*dG6V1p>Qu_mt7m;|^HgYop$LpjoTEvO@5to8jR*c7 z8#}^6UUqNg<6%p5{F$muf_do@<+A~!18<*0=GB_$FfeA5)%FOiJ3JWl}MxLvO=3kLF3kj z=4)-KfCyvi>gD*kp^tq04)U8)?ftAj#s$NHk-I4%5-K zQ8i?KdvDj=dkdJ$#6>Io{)bplLUD1+DV?0?ZeOBvdUcp_e{VdIATE-5QmcWn2_(_O z4@A#e@Jl+7%&0aE8DSZiyS{$;270m%<4IDol;Op5=x~w@q?mPA&9hk^lDYg zgs9brrb=Ky_h7@^N5=P;6>6}p_(3WhmNGbsxhJIl#x3sP{{x|tm#y-{Zpf0st`ibC z8cLMX2v7Y`U(L@z{2O2?CCVQi0(oT7kaG0-u2ajHw6~c<*wO zB$Rqm8tQfOczfIz!u|us$R|8C$+B{hbdL4IE3M`IlpzleI_m;G(h!iPPps z0EliXq47%k&jqfra??BFEUzW7YN`Xvh8o?MQg})3x4I7Tg@h zzo(RZv|w*55p5baY8Z}TBK%X6eial_$Qck-#Aw!*cIZ?khDjA1*>S8q4bKrLEFUVR zAGqzJ75-hn9BcmhKVRw^m+r=%y8~AE?iO4uleJYt?Fp)-Q#x*iKXN*#Z5X7?kf!0 zxLWnX*MxgY&nvK;-(lScTgb$Xs_$EBqY4D1scPc&^imWqVYng}&B&eq@w8(8{1zSZ ziJ@Zkn^yFV|&P!+AYY^cpAa+*LIyllj zSU(E$=qKWYUV;l(%bfE6Rk$m_gyB(q7~2xiQxMzPv@CLdrmVJF1Y{Y?OMsr)Jy7Nr zdM7w9s8v6|t;BuybJ^oS65}TN9#jnKf9pOKD1wWjhPGqwy%6x_wZZXSMn%JdvVz>m z{QD5`A7s5e^!NEE>d-pdD_djb5DkMzddKg!8*>d&dq7j-1ZFqKPu908&9VGH77eB6 z-ZRrcI4e#-9+w54j&)%J+b@`fLca2!YW>^A^8lF6Gap(HsNlTis`Ctj{3IhY}F@){kt}0M47|n&m#SE zvMBUW#h?UQk_pgSJlj{#>ycH5RJetsM$hT5chBKwWrf%Xa6nEwutk)6=tAlnz}xFH zfI-EKrv5MWk>99a8Tzp4qkaAO^rDxM;s2B*!}cZVvn=J2u`+G90`aWb1qQU()0)nw zu)=H`(Fp?hyH>K7!gVij%I92#<3}RLcFV%K@Z98NYpH~sngw=07sU8D6{Lw(Ay@nB zAP5pqnvg1>`@3p>iHsKAx zvHf+a{%6J3Hw91s3`%8G|EoluWO+3xY@t7pc}MFdidtDI5}}4mC9(7h8j_7DRCepw zEz*#Yb;<R@OBw|gL)7Qwf)}d*M>AO)MoQ!1Di5{+sp^yQ6Q!H~(qwqR@2U?5U5P$s*)Zt3c zIlk5X2&!`P+>1AEnsKyGXuf?7L1l zOk&ZNPv?&PQmsj;1hwSv&~o3wD!=$3(>%tq5Ov)^5nb!FTZ6%;1C6zRW|ULy(%!}^ zLnooz`@)s&zcO5KQ$rV-Lqo~QL#6<8o1tw4767#|u~3{PT3m}7E?R!icDf7hUcEiA zWItsqSh%FtWbJ`_NRsGBIK@8HZ=UtZTKdwr#iMjUo1Pp`>=6U*-?f>cb^bGP(vG_1NgL6=RoV>j$;zEr4mQDXiVL9=|t9%|$i z^b9nD{(9M?@7#d`T?u4=bL?HsNu&eQ6&x&0Nh{_v?zec5GY{8(CPb_L0^%VRmz7mi zl$jOZej(eRW1R)g&MV1T&WB;OsC_~EGMLMn8jWt*wl+bw0WYA%THL8vnEawOCPFC7j< zdoP#wqSgrpPQvhEWy5)Q3W{lZEV8h(0|NH;0-ENGcx4rh?ac+u?Ykw+RMu3+OBA#C ztBQ*oLJ)Ls`IYEnuaqTIVra(I+l8?q`IS zF4o)U1Se@ujlwCa0%b)d3u&^4J5)diM1!pVp@9;Db5+Kt5seOlU>Oh5T)(3#!ZLiMWX}3B zORMedx-Z#H<#mGg7`3BmlJ?R`tO?2`0{+EKO&bzGzt9N%Yhpz*N6_!%@74A2Ky&9K zE^(tBaa8J{&tMm()z{>hb}b1Gi;{rR_ogh(m-)?AxHLs`aBbS->@?2jDOE$ly zzP_mdNne^ZWC=zY0?U{R8;O^ADTvRW83JRgpRy;PEY%3vKK#M|F&Y0hk!s)S{C7SA zol?Dad7{xQ2(=V%W|V~W}Tpl|_B2Vt^*cB5tGCo?cHEDnS;f=JQhaD#|QF{08vrB6cM zArKKrW|=BL=Cmj6P3ozAzi>+n^=VNWd%65+yRlu>C z@r;79qEv;5REk=9P(pA1_gaw#W>lI_sE;0N#F5K+9C)BlGI~l9LcUsG#hF_Hb(zZI zWNz{g-z_Gy#n2z z9QtZUQ4xtinzWWuoK161J#MulOMIS)KQ5+PG=c2|dAy5Sbx@WoC-|eNisLN6r)|L%EX!g<{gV$t2hw4izN1CKu!N zrkN?j)ik_LlbQlMH!(A99QBxN74;$2&QKXnYjQ&i=_D7x64uG$#O%_>RT{)Rd`V4y zeODb_UAeWQv)KH6_mYib=4wRjt9%9edFa;0+07aC%{aml6i4Xzgo=aC1}v@PaMjtf zeU5~?n+^O-+%}vWG2c%rDw^nYhnH9IMgmX?H+uR!b=Ln;Z zwCB=-&1=ZnzSGX4aZ@%X?4FG5xkwwZKQE@X&bsSk4zBN4|76W0y?J3*%qXxIkQcjr z_C2{ydMe+oEI0h>Y@P)a4&fc`zH%I@)=yvf@elF_o0@0@SlrpZfELS7$Yd52(_7k^=9F$IsU`|wm5 zS{|#_p7tD{6(GpZpaytYV@-EvK!R!ulZKV?x!(% z!}y^us^9fLA4UHGUD)TJfMjJ(bhO{-mfo>#9!R!jDh8CyuI;uXmmFn|-9V__*zQ`= z^&l@GQ&)>*CX1QNpyYPUt?|K)+qL+b#Kr4jl&98D_#TBRZko6uWAY0a^K|Getcu3e z4MzA#^txg&9wER@?@`dQa7a6(jOfO?zP?u4Se+B8tg?fzu5o55wJhtF@(?xuDbm^N zce-BE%|&0lse{gJ$6zJJ-l*K%9}!+;M?bf_&l52?s?vYfSIu(JnhsBhq_gBg4yYVN ze>?;oL<{sy4g9t`n)`0MQ|azFZGx0qngUdi#a_&(o{vKu4X%Md)>B_yQ!_Ttlj?@k z7*+I5hjYeQLBxCHs!_ubYJzQrFDE#oYrwOK?A)}6jNLV}+3#9~uMgZk5Od5TqRp<0 zKmJgN(;;Jf^mK)&fh`s2`7l|W5#Lc3(2Rd(#708jFE{4j3~vR!(#%yLxKHq4hxc$s z(3I@1KF-w~FZ{?fshF`bS@!kX;AuPF@F}7P!R z`O!cI3b;HFFvPh-DR4||g}Z~lRMtTe9e99nwk}jpHDhO#OEwwtzK~Irc~lU_uG-0- z-%8Zto+Df0%e)5`5qU7ZhA(nVPXSLL=yef;xQDdzOu{dbR7xux)DVpZ^DSW4`ZcqZ zYwGt7ji|Zf5XL5rreC$g=dmfl+yr_(qzAt7hnw&$gD=J>`SBs9gCeg^MXy>#uOEwE zm5RJtXS|ALUfGM=|9I!V#@1J%9@@nC#oifhh? ze<@aClP~dJzK(p~cuP^Tc7JQ#7=!ApYxsAlmf!R?2{!(MMPzqAs?W zsFq(dx0#2Oy?ZL!hJ%I`d3|m2R8FHi`uU7^>GevOGf92)((&@z;wau4^P+;_;hlWF z!?w&;x=4xg1GfJ)rt6f2n27CNcui8jv8;&hiv;YTb5{i(Y}t2~eHlGBgXSHb+Ovos z$Zjl`LMAFge^|5JiQ8uauBT*nFhm;vo(;rgl@KE-B2kMpvNFW`@8f#Nc0t@d^Wcgk`hV9RrT9;^qc#x2HZ|`7Tyb#3THMJ z8`X0>i6l9qEJP~`O)ey0+Fgxm;o*CftYNzBxWagM@klJK;qPE+IRlOWIeg88mD(1` zBe7EraZU4@8G`u!05Uipd~7{SxuI1-P3k4Na5T;C{Hsqz0U_nFriYZPzR?bvNOJO* zad#>;+3qT0)w#pIBgo4_(K}5~ON4(5v^*`PkBA;!TEt9*T@i zCuw=8wwBhEQ}b1E_`~5;dijiUVqTr(L+h25aX;{od+*x8dU`a*bKUiW`26Vc!Qmlx zywaszuIPCduF!~kOR5j6u~GyxSt_Noe7*+mwQPBqD}^yoJ~bgUWwa$#OK%s7HNnvd zK0fY($uk`Imnr3W>BZ2gUzQwy-|)wCO-jPz>9Mh)++UX{85qGXBCYRKS;+KXqQzXI z;vPd3B2gR7tfNX?#5qj0lVtM4Jf!QwJdlPIaA}U0si<v0$ir@%l)EA`z$FrNXTzIG{FPZjS_EoeQ{f@l2)QjM+m=SqWOERJw=lda{HhYjT;!IoRWL{rG(I z=#exwGB}#Xxu4$unrd%6A%46^!mKBpQ6h8#dZdY00R{iD0x%EHcND1F1|L$SpwDZ9 zJAzF)>R@0gJ7-jx%lRVr3OBVco`^9M(;BXVv~gcp9&iQ|hAI3GwlB}TPide)C8)5( z`_tSeOgW%mq#7?cbH=%6&*JPaMs86J&0fKH5%p#?hdgN#5{eQjN#%Xt?*KNEAZx+J z-;ei_6e)1kfp~)zI@%m`|HATkjiuq$>!6eZE=lj)gHCglzWd8aONVvs9fqy)| zcu!UcYwHqdiO_q?rc0iQ;QMJcQbZVKBNU<`btJ?f^Rla^arsqk;MaE+9?L?Q1(ZRy z`tbC^dU4!qTrv*{VPtMHWRPFsuSuh%g`y}DGUDgX;3#&{+fS4n&|dM-^;E>Lw{#_3 za(D?}3hW4xnQ+-Oe=6q+_9Ardt_x}#L=e{svmi{Ul~_7JIcY7b?f={oafOs$C+_u;uR9C)eO@Q5+M}Fwe+zz6yObBkUeWmrpz) zuTpeG@&o6C30I%3;BLKLXh$Bf9Z=lfSqk#%e8u;x=uzHIav{=+nBTg-L-r)_k_?Ep zH2~g6jOEr|p`Gb1ly4n1xZfE*J$KCq2M7BG^M3Udi6>9UqVB{;hq#T*{;F%_KB0T{ z$)bNEA+evSt`oh7hzo!H)AH)w`zQFdu=)-1hT+FM@h1eo{MWvHnC}|Izi>r-RHzh0 z_P*8K!?>p62Aq0aB3+VPPkktqgPx!$%d-Djvg?3g(R{GZ#_OCY?vpBh@AxGDWaLTh z^^=#DV(UxLwHL>$g>l9h{TGT#;!3*7UnXKN2(EmA$by-7As=q%yMS<4t%x*MoE$!A zztRY9J25t+2$LvX(93)4y-5?c5bj)kZxb$feogh?ac-!RHA0O)54^Ku#6nnR*>RJD z6I~R@4aOzom5myjk>ajFYEA7symsJeO)JmgJjgiMzY=!~NDrhPRBilG{u9pr^O>C$ zZ2eF7=*N)9kc^S`;SA)`F3B#YEWx|42CNvt`aRUW4Gn4*=)AG{K8|hPPFbs(7$+CD zO^I4U&RNi+SP2NbBknrm@)M3V$v^X=M_nKr;aH>apDeqOnLbAH7c?>qJV;)mvI_)E zm~nm3_BV>U3N7+UasMnOdxkJGcIw;M3Qe+3PH|^-nULqXkCBkV!`k;NncZ(IKOTK+E$xHA)9#`#lk`;|6o%BQ&}L z#NFLTzRFvf7>0>-d96B!Tz3gKY+6_kJ3JbB^=$BF!+56ZOAa;kD_uZnNW7`VXiS;xyu( zU`m@Y2v6Lu)I~Iwb>a&)5ZkjJWmWZ17n5*>_Pc&WW>LqaMBguj7?E3l&za=8Y8l8e z?}a&Vfqr?n=l-=RJxp?}VE(JsJN8m2$^*hO$e+BowzVtVE0Hi*$2RYNaJjpXXNRW1 zSfTWwS7|vDrJLsrP}x~x8j62d7dqf!pn&TT=iLc4G0sk#lvNY1X##{4|C}4^&dO!m zfng8Xc-P3rL6G}6e$2%Y=(FN^V_^$D;?B}TjjuYP$q8AvGtY;-&R=(2g^E@h->IR1 z8D{%hHwILgb*-W@HZH#~$Mhr<`8{+lH>~4{j3MZoNf7?!OAltddF@cBfHW^uBeM-^ zq>}lm8V>wqej2}`;;h=f=s+HhtBB)o^x13{7P4NtBMN&Nj?9t2ioKPW#z@;ZMUdL@ z3+^w0JtTpMj9L|0;X6vc%2>1u5S=#``rl;P*Q2>gF#OyThJDa_5N0vQ;VvmdNoB=; zQ3#efiMRTz5Z+F37q_llLgs74>S#K~Zd>Fz#Y9$O>dH-XkX#fJarG$}qarSBmX?BU zaK{+&T_cQJ%?Nis7XRqcbudeBDX6tT`fHmgo~m~>gDqLo5WzR>CYk!18iDI=R5D5P zPQ&m6%9M}Bt3*78%}}!8P?UM}?CC1KGZ^Pw)8%QVfy>I?OE$QH!8t8@I)X`rU3-%Z zJU0jKvoSZcZLRzM{-1G0H5!pJdh6sfoYLLfjdq(_D@ZRy)3tJA1g^cY-sEk6nuFV6Y1FH z`V-Qr0XVSxl^$tT_ltnc4L}bYpHh~3EsVde0r^{6q>f29IxEY?QMiV?xK=Qy&?+UsD`42FBw86EK${L zFuE-;C|dN&8jzv35$gV8b73ZY!0jjq*U`r@G-|V1j{qW^!6|h{==7(Zj!=k&40ph; z_$=6ObcE~)=#$4PA?5}m&aM%ZkG0*HHJr<=@Eb*?bcE7RRPRSO#wu)^H5d{RdwSA2 z4D9XkbQsN{&r4;$%$}0<7NYyH6YgM%xoyX5HYd{7cImR)NXtf@k%TRpg!G;UEyJ{1 z@4(ZI_iSfI-k{2t1OoQ(H_N`0 zU5QQTk3f&cKZy-e?#s87>{PgMyw#5Y8id(sJdtm(bF%QRF|Qw}W2UcE2jUb{k;$44cyyR2VPjYHwV9+v0IGx>bp@zEtjcze3GHHSIV|A^D z%@ov^SZzssVb$N9y7k>wEtCGb6-7n1reofQd8(>XHauCsGmRJW4CCSu9ZWX6KFDJ7 zJ`VJ$WAABm9S=+sthG6f$NR(8TQs_FqS@Mgw7=_0$Y&;x&LIC1%v#4?hr=6nx9VI# zWS!=C6ks^=65&mh27yzR?ZvDH002IfP$C$7nVZo7#LNjW4*hZh)(4f6ACsMtA*%oC zKr!2_GJxHO`O3n`B3}?|Zdcg_?{}K9 z{^EiP7b3qu-?W1}bKyfkCfQ={%FeD~S=+NE z)ouP>nWNWh7UxXtx~%CwjK`%_9-jV?{D%rPkGLV}qcPk`emz3*H(T5cWqJ9XPyW;$ zd{BtEGKf}2A3yy02J;EI6fz2BTp8JVvKpstx#eYyEOMK>yxNP$ZjUtukqf~7+j4p0 zpyt_`fQ!-NraQ920qtNp{^|AtrD8~b_wj{Y*vF=`qfr5MvWE2YMEj{5b z%;L~y`+_mg0+aL>Q4U)Z(T=I`Cvqw9$L7V-1r`nRt=^xx=tw&{O;=Zkrl)E0EvmAT zv3(Ws;n~CJbgNtz)Jq8Mp~DDv)P)%A#`Ldc@K$v`F`5sYzq+p7_=d13Y(tIz5o_C1 zb8O=(8BXnwfT@0P4bEP4z*d9^m+wHDi|=0e?$^7!W%F1wx2!LK}n#H|DqBEBOF zu$On91ai^5dEe(y<^7oz{*oKPk?Rg-Hi-Tq4*^RXO`<_^P1Ocpva$9_DW|{UeI$+9 zkmP6h6e^la5}@_jUP{4;3MZC!Xc?9_IzoY9vk+wig7O2JYl(zl5NGiN;_gbUor2(Z zS@x(iGWV#Diqk@?A#8|Ena-sea7k?``(aInL@ z4-@Zf!_ydEqZOUmiLpO@5nJdz!6sZvUSu&yD1)qE8rdVD38{9O>iolAoHi3?^8sxk zsW7K%iUKeGHq_=PlT$O^hp@_)BJy?<8>J6MUWLPkaW$FNWV@G_*%m?A48#XH&1jnC z3P=44RBjD&lmq_u>tZByvm4r~+`^v=&!9G#gp&#;zTqX79&3oDyWEYkrhI|;6T5Hv z_ntaknhW9Gy~(}>`n0MR=9c!)g=?Xl;hENHQVlV+P^lOjN>fF4?}hGEdPoU(WGK@j z2`;vIBLo+&Mk(|G1I~U(J4GC!Y$TtCC+*768)|VZmn>(E%^5OgkM7;AzP^x8nB8`0T&rAM1tu&TDZh7jz-X?uT82>!87+6W zNe*9iLL|^_`1oGfnIQmIzJ`5?*s`|I^p&yv4qoFzcW3%XkMUNBwd6!25)z-&6U7zo zjL!14`Carno^}(FMCvTcPs#xJEyM*?{}zoSjLl9Bnfc5a1IoS7U8NwwnGWm#V69AG z-uz@UKjKChTnG`YiZ7SdXSvQlcgkGH)*4eama~3}t#w=?JcldXZih?HD#@>W{REu0 zt#y|#zT*}qn3{2dFZXg=@q@ttFHdvJZd;vp?9v_xTMDG>!SC5WILG?s8G6}UKQx6X zqD_V4wh?Y9mAwxOVU7>NjPpbPVX39YycLEYOn|eIm`Y9k%b;7 z%S#FikVC6rfe5?17!5tw=(}L}?AXxpza>NW&1mYp_5G!POSC<4-`Cqd@2nX8;HY`e zJ#*(BFLGDeW))W#Uv%oP)21eV_+VxG-FO6Eh_}4H`M~+l<1f~1e%iL`(S$Q`uI00B_*?we<7|cPDzNfwuyQXdM8)Lcl$|#zC@0X5g#yUe$@qT# zoS}fg_X;@G01KK%$=uOwRLl`OTSH-{ZZ{KbMi@WZebiiFp=K|daS__XqpYP zBA%ZsEi-fb`oI2f z^Zd-4!M$+*Gy~?&ytH~i7Ve!jJZpIPr1DKMZz;xip}X)xZoX72&r=qtcX;ndEAc9B znY375sw`6<@czm1rpu|IfDb8fr;Yt^7h!hu!$225448h{91GOFX2F)BPBH^Uy7Z28 z=^g3fwUIiz9t5woV`SIt#NL9}HkJBJSM`~$>N87nU)>IhX$zUr*u(79!|c?)N6W0weH%j@A47O*IM`vZ+5M^osG2^xc$>R;VK|eTcLonE%o%#kL zXFa~NcMzNZ1q{e2=hdRxni?Dq4=7Jp7G~~?l8n6x z@wk~w@0l`f`O@>r>NTTZs9*BpX7K2_=u2)0$6nK!q${gwJ(TafKqbQOC6l0$l1U9j z7h3Tc$iv3y9<&v24RXXUaZ#hBUm&tIJP=ou`7X-t@2_r$kI&DFkaS9oz<03+W6xar z?)d~IWbtOap)qkV@p>crcMj^wY7WvF3~3=@9ALx&2fU6M2YiYHVQY}msDS)ZkjH$Q zgOhQ%f3&)tvG6M#U_5~RaYN1zp!j@}zDpJ-u5H9sINF$)4taL66Cu6^@@x^=$h4t( zkpG5KC=`QKBz-97iMR_%S$xkWchHio^znZ?b!)zpq*@%B`6s%_U zonVXg&ZT^^(C7mq1)je-^SU9*daMY2e&7m4_={piQWa&K)m z?C|FU%kXDw?d`}{74^4QwME%7aQkw;UnBx4+VXxrkGoM0Sh6`zkxKLTH(Pn- zxM78{!s&%|mZcWq2LA$nuBA@ChrdS_dS+RuuVAo~13z=0$mT${*T>+6EizT_EbXV+R|zObOMpeR5=rWdiOC^%X469lGW zL1LT=hEWM_W^lr|qHg1M&)CdywOCPD$z|gzRyLZ#%v51xDgFz9$6sV?Rx=q31Pzo5 zrdJ)$7=hX#(kqTXH5vApB81c$q}5n=j7Nq{_GQ)-}&+tvxgfE#ic-*6_65IIJnmyNF^FmqAef2YTPA#Eh9a+<> zhtKJKZlkCSnmugn?IjFdrzgMSZ{d%Cy>#xHMrP#^oJwYlxqhurVN?*6s?z|6=jYX< zrFm=627W7jUfn~R)VI|4QCr^kc@CR1&ykl$`v|=peR6~Om#Z=N1Wzn`COdlTQR+{e~vo`l#j3B1yd@^D|> z8O+C*NGacOXaPHtyxnZP`!fsE#`D=UEjZs;4zw5sYq1*7aC}CKVe$qt`}6ZOQ%IUM zUB7Fo6bDRR`;Sfj2h-%wnkFCk6_ZbYjd!#2lHyBl*9X!ZQ4%Cx;v`PU_W6B8kgedM zRw{V1+*z(HD&$aa2s>?X@JYELoMm-{P=u|-v;UXfVjO2a;mz`9K@CH|BZ@+$=~Y)K za6(VwAGc1ryJmjfs5{mkx;L>CSFU}&|ank11QPf)RNJwx<}vxk|c_Va!essOF%}F$n4RrIm^Xy^opQ0s1mDR z247oaOv1tKUo1hY}?r8f3ij)+mo`0tHXSg2cpQMrV zAJL_J>$XJIO9^!waI_ibdN0h?f?m=KjJd8Bab~(O)yIP*C==qB|DW^I< zF+1y!$^Yx@+EVo#D{}vRW}E5f=TDFwonzRn25;+}&QR+nK&?H1T19xe?$2@Oc*xYA z_!`NDowP>}6moh=5eg6kRy>Rkj0JDNMxp$$U>xpQ)T5in_2}YpJu)7r#(F>=3DW5~ z)mRN|Gv;h0Md@Y1PYs~;l3_*TFdg>bG6PUm*OAz%rGP!G!fn+C=b0@O26Et*M0m>WWVJfO(Y z4Is0;Vm|^1$zD%zJ2}9}3I`oYZd#pqf8$>gPc=2-F`qq!@k8P5q2D&ox%a@Wp+Uh1$HnUKL@B;z`PU( z*wX2KJ#aZnwj zPF3fs+>jbyBwm|&P?^EllsQDADQhrZzkvGE09p)*19%JUg>ZcC0Qu>_flh&M?R344NEX?KBnz?10-J@bG0tV+ zyqWcqHN+mfq~~|moZtDTZts?`Rj#W2`?dGq-_L6CNF*g~WWH;XFB<9+j3YIUoN?rh zqr`l^?Vv^vY}#(`HT!ZwKg5+ng^;%qd7 zFb3I6V#tX!64TXmh!aeu7{emAW)|t_-(e&{Rncf_GVw09lX^KlM_+`9U2>BgiMvHv zru-2^sSH%?`^ zX1YlfoWyRk74yW+^F&fqwV0QHl$5ddu~>(qSduJO8Qj8V)0m#7I_sUp*-AEpgO)V# zL8%3o>{2XNbNL{>Mxa|_)}XE|lCj(h)3#w5`jQqn*)bYw1yubR7|x`ScXtd0?Q=D( zwUF5EAU~C_=fNk*=0*oYv~2b&RXpnJWM*nq*6_{WK!W>MqpPMeken125DVRNX`c0tH^ z2G?9sX)CQT$X$J*HT|3|QUjGas*M8@)F9^Xkd}G}R^SleD=x&2$8ZmPb#Yeq06Ycr zdlRwkiHUscxqq$w&6wZQ^FIya-aR*fJAN+6(BW~2VEHWf!e2I0pSi>%nKgDp%qg28 zMDi(F#uD+@O=+S-FLXFA9xo}zkpKdUl3NrdB2p?@I6^F<#8C)-=Q6>Mb_sseY~KY) zBM7_+hIW#G%? zgI(}95|2a;dx+O|{ClKxvSrlD%H^D43@KdL!=8xkRvhJ05Dv(ABvw+)vKP>FlcW!; z1QG6U9#$#or75zsQY^@>WCdq)Hjt$$lC>5Zq%Id$iZ(awF7~~n*#%@?ip&Gj!^pEc zJ!va3Ul%gGI%Ozjm<3_%c>FC&THiXK0JB)kEdrCMKUdHGaX#d%pYtCg8_L0D`Ut-r zyEV5v$D5PGaT@2Ay>bq>#oKIq(?-2sUk(Z8>5kE^(O%s@k)LRpppAD-aZU10@x}ZT za_;x8Ct7xZQfEN6c)Ddko-RhBy#LiMuepg}YfOEj86rjY$bczLWKV3F z-bD636VsN+6l#E~=&#Sid3H0f*-aC%XL4M7m{~^V4Y+i&>xv&By9Zkb4@W6NRu&qsr=GP7z@Dm3T&;RvUV&kqq;z_S2en=d~m9S*WP~=teYJMAo0F9Q04?(RQZ$v9&UY6IefYlKNO%Yz^$re?X?2M`5lgt53K* zt1>*?H$3;U{L2bQgk#b~$9T`A+(~({{0YGc1vl{1J+s4ih9As*F#MVCuigs98U6ZQr1JputcB~p)oXz_P527ec0 z@ON4G^oLzOrZt!8Y%T-p6@xf!IGf9KHdn?xTvrf(uupxT|6%M)0Hdhyf9E&X&VB7M zvq!R69VR_+44?Xgm-wwR6bsL!Y3KGnv{f8c3@-rxp?+$zj z;(xiS=n{uD_@cbnJf@%-j9TfuHQ(K5*d9rp^aJ;aMPjZ{Uvu@Z^F2RXZ+< zB=liuO`nDmY7y1s4742xHga zhdo9t5BEoVs%!H)dR|eR*WA78?&0fy>Z!;&ufy{-caL7T&xS-sIVW*WYL?iMSdv)I zuTid5ZxJ@C_sdVHyVS$V$EpT(XG&K?x~}S~#2az4Di#q~1J!Xd7SBh_ShUi7aj?&a z{Pj68sc8~b)mZOXkb@MiatOZ-O`VqF-O8-;AnR3mv!15Ffo>Fsyevl7J5%Xp>9uJp zU2TzH%afMWkM;kne%SwL>ubh6{!Q4AtMQ`;Ef+mRj-RWAa=Cu^q|k(`Hl3nPR3C#h zQ_lZGxY3&}aJE`dwXwP}7MWzwjeR}^TJ~79phMelz=vWd3R-mtK9cZJGUju9;JXt>%jcJx?r>z?31|x62V~iN+Uq!XFUOV|JTuQGpVx!=T=NiPDoFxokh(FbW~hWcWY3oK_D1nhqOmzJR<86wH{G}ImJ2IAu=A3 z^@v&&olinkot#aRX{t6eTFuu?$V_aSn=01K&MX!e%8QgMLi4R_#p~qj)El)`=@psv z)NSIe@@?v!+AZmuGWW>$srQ8|-N12JRn~}SV|=zAWC@}^X3)(ev&4L;NaSJH#&3<2 z@k~S>R#}??879J%;B%&O7++Z#p|JCjg9@?J!P?NS6Q_%tjyV6~_OMJ^kwvB|QBfJ^ z0xV6DEXbs*;W3t}j1P<1NGk4z*8NC?7>2<}>~d=$1!jOQuncShEZ7CM+0wAeR4{nP zZ1lkl5>gpGLze>of^+yG#S*+v;`ws11fM19K|ONZ6os5!kNzGkl=ZRZD(P#s!>fUS z_XuPS6dR!5GCY|!N|{*Wd?fnOkuE^lIrShi8=9L>@oWlCs-VJgt-mvO5N(d3I|aoS zrASeZYYs}XcbBCW_@7`I4z^a3EzK^tpRUEF54dpFO~r&mW`s7ej3OJ9?bs<_^1B_~-Y*AGM`-UU0^W z2@|iZF)z)vJ~IF6U(Q?b`a0$IyVhMay`^PQ-MHKvWNB5 zV!$I<4=W4&SFDWnu(H5^!OEbHWyng%J_MfS$nPRo^rW1`^-eYg$R<>$0>F0QqK=1c z5$j^kRm5L-NYRI$Mn36j-~k7nK<~)y_`V-BLcMuf|G~~f8t!mvcfrKc4=OCh-BrPX z3i`HzI3qv(^of7M&*z~Xo`fon$zeTAqgOWUsS+9zu8QJ@;Ib!5G%+Ly@#D2$lvI?* zsiac6%lzOcB`wK$bZ=1z$?}Wt`yTQRg0!3WB0WNgdGR+o&8@@$X%7K~gbxa{4F*Oq z*w+^bhUXYSGEMKjp}qHp-qHf^RXZ*^i`(fY1~d?LR7Pl$Mo3-Kt=z5rCaF(4Dv2p+ zhD6e&$dPW@77rwm;NV-fx8uSA_}c={r#L3WaSQ>MmSjRC$?))_{+<#Dj-Stg`6P#d z&AP%24y@%iaqu|+woKY}g-b|qH@TT4NpwU{F*6u)1k=TAV)~e)48!aqH};5Kk2~N? zH|l>u4+|B&Ksy_Y9NofJ(`2OGh0o*t|Sv?Hg@pAvKV5I!VwaeD5 zq3cgfLh6Pf0;`dyN51m{p?X{dR|yKC%M6N-pVYzr(izl{Gd#{x%e68zTS8)eEatGT zrza_ofS>2tTLr#_$9<}g6IGvTmImK~A0xYkJT7gw6zhqsUT2fO|kCb<48On62ThYr|SJ5R2x*c_uGSU?xaY!sj#ROBaRbG4rHF z;g!rv>H4tBgb{LSa8MhNm}T4BF@u`eTp>QIq-cgA*#P7-0onv!R#a6A1q}m@4z^(I z)7HZfRtoJULq~giZkXd!1cN$yi4XvU#c*6@*b0TimLc(cW!QkEp-ZZo()5s~=>{)x zR+v$BO(IBmNepFas><^mN5X5e3`5rmE@qlBZ9ETV5-E7cW)fleun7jt+>t_A{%CX; zxcwQ&QS6LGr}oFJ{{C3B-dvJ4T`pB58Slv z@hJZWGPDXATKBQPAz08NI?SGduQm9wMa=UqAgPpJ=#gy3MxA*8L)ptai4s)g)2*N- z=!inlfV*G|r~#skx>DU+nn4kP%dQD>3pp0{vUSnJnTu8cUEeG!`U@ z5lh66aM>O4>x7cW^8gKLrl8#ps){TFO_Oya7!=`>k+MihK|utpMh1By7)%j-h#+{1 zl;xB}g(QiBhJvCUGuhKLhtOn^VCiX^Cw z+vDFk60~OyR`d>bRN{FYg^37XjTQikz^r(|KxIGiLeSaKsA@W1;Hu*V)T;k%0%7uf zb}~^2!f1_x4_S$rZ9yYqp2opYxs9SBB_hmrxB=hOD2P%;)oFmJsA>}hM3IP+f+jo` zG~qEsk&qfHg?_Pw;o_+-X$vSDEKfdpvUNcE7znd!MxF_3-|X)vb4Lg6PF9T!4{Rb& zk}nQyT-83~0&q+J)RSM5;;>OODhB`_i01lC5;?9%WL%d-f`rd4lzncY>&BF-Hzl@Y z*T4`@s?_a8)6h{0x<1uOpHFqd7cG?iE7ePBd+x0CU)ecWT1NIE~Z z6-dxgxS`O7M<|Jf1@}+(I7rZSaAQDuopIfvOo3&$t*QKJ4E~E}^ClOuFHQ6`R1; zlRf?4gUk5Wfd$ZW|CFEz7>a^+G<|@G(r1px9ns$80SbEgN&1O_1>gA&LfOt4JWMC( z(}_Bwm3-fB9ZP(+??DM+=AR{X@m5N^rie|PH)XCfYzGQd9%4HWL;8!bv;?1Xj0mhyOqt# zpu%icwkn@1l=8gC{5y+^1OLO?7MEM~$? zRT_ogE|~I}lbTD@h%eKq<_PtPq!C_;?k6Pvf?_{N;R{ZCkzRTid6BKu+NcLMl^v1Y znq>+I|3p!JcGuuL4)MI_!}b)jBMUf>S6P!EQRpj>TMD3Hq8>N&<|gOmfz6Cn-Q=}v zHhFGwljAYlda)_}61$frlWaRnvLP=P43#=Qo%b1DWEBiVV!2~2j6mWJ7#3$NSOuez zxEP8ZIi_6xf?D+*d?A<9pnAsB6OMQ&BF-4*avyz!u$qIp_9O7=L8p_w^vm52dQ&JB z`eVsLrPoAv1_22eW@yF#M&)arM!M5Uj5|ca;ZVe^$x>`UA;Y-m0-i**&3kU)))ywP zIBV3R{a1pPi5tItZN)Zg>AqVxJ~>0<&FU8t=4E@X?r2`J;Hn>ID{h)S>1Vf0TQ@DF z$gy-rSUT*qIo($G?NjVa&l$ev=vTL#HU_*`m(c2_Hl5XV(e%@MVu?y4HSMIYVLTuFvC zqNci*3YosXo?$=jUH;5vTf6OnFMjdDA~HYwyQ`o2$*R>)F}wT!b@%kUUtKZq`M^65 zf%{&Xeft})?R)tRjf5Dm60``EaDYR1Fo5r10C%(nG;{|8SPtKK>tzh3YI{1H(F4zw;3beu zoEbdRoE4m9b_Ki4ACf<$ejq=pJsOiZIVvn97f=hCRnjtft^Am@o!=pBm!ycaUiuqJ zDb<&#SF7JvDHTA)Y-dN{YOpSNS(}J0#0SJt7zC-RNR+QJ0WTd7cqs!09`mY2HLY;i z0#wHdT-|car>*}{I*mw+xg_)?V3=wvIR`YiT`mQ-d)L5dM=z$}ANM;zY}i$&RmE_6ZvZ3%?Ex~N;QYIQ-XMVOWWa014oI$01V+a5drFX=!(6`7 z!R77%f847*W)6IH`7xC7TkaK->V+n)^C0|>v02E59&iIpr(raYN6VD(SHzE0+cOoP z|9tEl6Bh_Y`AYdC_T$J2a7@ua zm{LSdh1yIE=mb<}6jW!z5Or4S$g)}h@qF1kCNjD@MDwZN$UNzyn$fgCmcQl}GAQhuy4*}^yoke1zV~wceA{?~Bx`I|%_v*}aubxbQ-n%-e{8k!VsSV%j z*>`wmN6|S9~e3H*g>@7@!d^O%G6kN-U7r@CGU!LB;%qou5Dq^H;Po zKf|ZXP&9EvgN^QlG5)%<*s3p*3c@LfD;pNFW51nwC(-epdNj>qVc z#@Oh{#CT(BY?WT?vgFy0J{vEd26e){L8xa?8^_WA_vopfqG`k6_AeNxm%U*WGIC4N8sNB> zuWiV0lYtydqFUHYHjnl@k)xIb$;k7b3%R2hX({RJa>EDbSw}4$u+t5Bj{`i$an*>O zE26^65>q5FQ#eW|f!P6W9EZ$awGJwqb;laC^>;f1^bD`P z3AtU%JM%$Gk9;nf#=!mEt zT^9YJ^q~BN%*Et7d0VtEN=Grk5KHDOIGK{vgaE>1E)=9GmJl|FKxi=N+|ZrHpiP%s zjyy3m-EJBYI>uTv zYDL433cAxI5Ylv(53n5c)ivIT6FRHL0gN*n)~y3MD7ed8^qNsEqw=jN@dnjC()wXE zS>)Nxn}e~NR-fAuAJcr^guQ#IAKcNsC_m`};~`;E*JXE{L>;ok83Qw^PoRue5)II6 z?Gi;M)F@^`=ZX_UEMF0=XcV)d#+rgSI&_XWDO3zxC|)I=5dIZbhSxOKo?df$?YXs^ z8n-kCMpuolZ*QC=PO6$%e}2{Z^$P-*S6yD;)ws5Cf9>I_f7EvS~B0U!Ou(dp84Zj3<+p{PWbf0 z3HLLlqPbE98KOGrFuW-*z5N!_a+PzO~yskW=rq5tEFwCd{p;YAgTv>HR~ zq*miW1POFS&SVu8>v=VrYg}1{RDEt*S*p9;Jg(-~_E_CxX+Mr;mK=1)mK=0uKXyZ> z!9>kjI4(kkL8PPc%~35nPSR%mjp|oy6`RjodE-V)0jszD`RLN$-}%CIkInz{mKQ(y z{$n@Z@c7f$t$F;y*vw4xyt%F0ZU=4eJpjNR53D`8@ZWpa{ETY&ecwy3|N7-$BfoY7 zK~SiBD+C^Yj)*|13!8Z~i^;}OWQHC^O{8|qG(HqIqj{6lB|StjfKU@mAS4RX5Zf;K zctY~*yj@$AGQ8a~IzPyRJ|0A{VUO6j?XC`QLul!F6te5M0S^Zwd<>n(W26bsK*SgW zkJ9NlxIry@`1$c2xI%qe1dp1?kIrw49F366B3mNcB7+e+LWVpR2zkpK^0*_Eaf)y? zczH+Bw<@F{%YQ)7xbV+Kx=z?8)-kl#ec~&{J>dj01c{XjiNmL9;mI>BzxUXk^IA{3 zbH|4AgxAvQ1ThE@!`ek*l|V*er8tl|s8`twnw`TF2@9CVmUQjql?R@JIOo!6*4;{91mqd*}mxkQb6X3{?U& zN%1W8{9vE^4h==>TYz90mKNARh9T(9^cH#>-A8{wvwieYnk48Hy$?R4X(#R_XVWEC zqA@Gc0=fhmn=0BfRkT-UK%*#GKx{=%<4$F$<#@g>Vw;?Qv~K5eKkPpACy1u)Lf+Zf z+uKWjx_9qaVLJQOe#r7SLB43k{Y=Y-azzQk{sta6Wvxr6e#6S1vVy*M{n~o%EHZdm zaOYC%7^j0NKg!vU80qYtVa0uR2I?x6Niv(60}MSKZjLfkl3B*AWd<1)!eQp z{Or^pB+EDT;sz+Ji`gu+`8CvOsfsSsx{t2#-Oq%Nj{E4CkFM~|*+}^4 zxQ~wcXvtTABKv5?N2@+M=yM4)A8q((-A4y~X2fq&3?HrgXxT0B<-AH?lrgcVigG?f zAEXcRe>Fc!F>f=+Q>4kIYIrN2;wh@8GQozC6%PQmCKlC%eHpMRvn4}jOf#lrHt9g8 zaiodsi*<}4<47}v7(&ORM-fx#B#t*F9B*RuSoaFW%Tebp(Ai^oK}ER~)P>ySqLtYc z2XXvK@zN*7@h8PmlbDV^DUJ>~hzb;u;qPE3bp0KJ{V@3`5F(7d{LG`iTeZznzf`IsHThR$Jj>>d!&bY>S= z(^EBhr~~A{cG%bPfq9+&K@RA7KhBeOFDH;|4RskBZjNfFeVw?96bfcTk{$TnymQx$rL*@= zyX3M9cW>R%UrRo;_>!^rKH7gj`RtlCGk);h{&zi(=@69C2-sr>8Hx>(k88WMzfm6t zk5b2jERFgEsv#F%tAPi!ebxuophc&+kP?a*&|?B@L>6R4QiixqicgM}lG~IhDrpOQ zNf!2)MC>bx*jExuzLJP_l~|3>z`!pCg|V*$pMU8B!GenrA9sr3MeL4=0R9)JSx7g= zkl$n-wa8`G7HgZ;XVDf#wuB=dCq+Eoig-R$1Z­}ItUSbn3sB%I%?VKn{Vu2L9SoAWc)p^_rCy5 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

IPzLO^!gD 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 z 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

w8*`%c75btehXW(w&~2{eF5o*@TuB@*%Lq& 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 o`zTHr)p!czf~sv@gC(*9%KL(Y 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

8EOsVWqOwLDSW32MBr>3Knz)h6a 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

E-)f_1)Is|Eq2-2}eunuiL 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�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%0DN+Nh$} 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

P;ZS{A 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

M9gq-15v)y?tb$3Tk^enC473n^~XTBIbYEF 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�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 z z(@)R^8M91f$Bp$71V6)P8A>0u`1bHF_C7=SX*zm`Xf4sGjvFsd3d9uROLce>ELr5u z19*B4*mqHbi_N+3F&A+7{G2<;>waemxzd_WK!!K*rV;!xSLnPw?N!L07&P|Dh1Um4 z3IJxw;Zlnio<_)5Fw8s8jnU@%CA=X~E5W2qR)9i#s4t4)8? z70Q(YT2`#%RS(=sl15%7C-*FU*Y91=XUaJ(;bZO1T(pVL2&}*LMF~w4lsg$3b?21J0d9ba+p>9fLrBAlSSb@jG4e&uVEs>~(1N!##q zTnlj!*=DaF}iFOO=7;s!sI(B#SNb;na$3mn!a4T%Bf=( z+v1=DT4LY4ot&O&oLVkcRQ4%RY_`kiEn-d4bo5hB9UvLInCN#IeryVJ5e%Iz6+rOr0{FU})-2D>cQ`g?J6Sy1e7w0f#_38SXh zk;=n36^+iz5ZZWpS&?j=cYDJrqtfVo-X_BYf!%t5;sm3yE%9VG_K|d&yB11i4j&a zu&oDnW3r|QYmkqsyDqp2X1W{RXxa&@WMz*NVL9-$NAK@(9}QMX+k9|Gx4+R3&+ERn zGkUl1kb-U}BO30pvaYcX+$reNe{2Ed;%}3Y4Yc;jE4XTJ6%D2@i*AA$k=4L<*P9}aet$K=%-G0Bkb@>wLwiH$Ywj_Oe#OmDD zsg!U&f+X~*PoO3Zx%D9Y0W!>cB$%!-D3Z=aZ*YfF(yPHoloIQ|lhQVpDMRkSM zqoHkWb%)4Bv8ACk(!Q$BjcQf>4g%Mzgg#5*ot2Y63Z>Vt!aXeVZZQDOAD}+UcgUZs zbjsbfYAOkJFf1n2&g5unc&$ z1$LT?cqyB1W}bdz&79-NRYC?|^_U(;bbeKj)xp?g?1#VQVjF0xiu6{%YunYjn-SWy zH15V}TOm$3nLtG2TcBQ3Qyy;J$20MJ@*WT^DhWldFkAEt9j*lxqga25vqK9ejRgl8bzd#u^xc5!jx z&Do4Ij#`}w;}^% z$McP+kWuz|@i&RNPe z%h@1%s*W&=ag$P}?B@OvyJNy$1z8krEn)$j(Vwd;27#lmNF`fPs6H$6z@zTxfNx&#s z`pmN{G!eo!COT1%D3FBhU0lSl?^>^ZkUIx7TnhDXVTa1PA0&*5#Mh$=Off>Go*-m| z7g7ob32{J4-Y}vTeyEiFLBhCaq3l5dok;x7JH!f=num~Sz6kNxsxfHN&1SrnOSZn_ zyiln-2-$onQ41$@Nby1{{=E=}G0g@A-vBMV!*UMg`*y-#53wFgNT9Oo5T+NAcqqC6 zD+zR{8$uQ$690LCEDR`Vk0{`5a*&WI68|-f2=9v6lRT@dQZjCF*0*w-ck*EDy#m67Q>io&W+$`V)DZ>Kr7riNwpH z3pjHT(Vz%8D;^~Hh{mtrdYeidBp7Zaqyr_--tV3cIs^-pG!G~8`VtRD61Y-2NN52{ z5}}b5^FzV>q~`ty>5?K7^oRo2mK%6@Fa7pszi_W#9%yU>IO;n`8q0UjXbrK;wwm>$ z#c0WxT0*waLuWSbZA;S_&U^mge{W*5Gv#qc4|~V-s1tm+3*oQ(S2*3p*TxzLNjTJE zYYQG-Ib_G;)8^CIt2+xHZYTs)45xx06NxIBtbX}P$G_AS-mAz8;DYMg4S&D)!dkkU zdgm(j@<%-Sh{3ykEkDXTI;XVB(y2pSaZb0sa4o;&9WP$XH=NZ~({`AwyTMs(89Cf> zt(C9S?geCR+ z=Jvb<9*;rqU$7kXUYOP{2w|Vjk?HomOgd_A2aMZKy1mTSUPe3>y%evDFPBqD9zb+SOEbxV(9{ov7G1uc#tMZ{_nMrl$-GPRwejcn6!y==1qm(;VTw+*H zBKlyV)d6)ZL|vz~u|9uT`cv}TS>c_e1%+(!nw&@eh^a1Q( zjjpIB4hj$~keIcW^efy2+`rySdp+*>9r=|_wNKAwxVodc?qo{E(zPM#Ov~|>?H(HG z4O($6QaEQ70K*^DE%yOr7NWPl@g>|M#68uyx7QMW3YXYw1 zex2Pl=dh&-d07kX@@HRtH$Cv;4d<&>1q9@b!#q*#lR8gKr;p}#xHxBIm((S_?B|qB zdzh+wZ$0ta&15;7=H7PSxh=g7=hiPao*(a|&CL56mgto1_??YhyD~NfILC9m@n>H@ zBncc@?H?w$)o<<}(r-5HKV_G=1isKUyiM>aS`Y=yQEi@;Bm196t&>lkHPvd`EDKiU zCu9t92?y|;<0gOiCmY`Mko@kCG7NfaD6oBEqMGrha37|o?|8}OAD-M_r+FuD`A*NR zW!{ec>2TBZsqz0&;_*BAyw$Mf4bfQhO+R;9aYSqL^yYTy;B{!333D8|LDsOS?u5{* zxP!`}+~q{y3)ja`P;#QdW9#|`#)r!Qn6|)oWpN_#fb66BnrL8m4xT@9yFGhG^$F)+MxCw?@oXSH^2PUh^Gw?w;w|Vi&WR1))3ZmJJ35|*MwIGp5~s$`Sy!qOzK%E zjg9wUT!1Y@dbT=%xjokD9zFXiX3g~SF^)Z|JzkfNL%T;nXK@#vC443USl&DW&s+kK zo6ch1o^DB*nVZ=*=C|j69q0uCbHoD%!B~4V*Y#d={0;`pOc|Qs@;#30)`t$S(RPzp zqgTr{w)0G(baZg;Soj{(9@(|#b>zd0uer7Sl*dawbbY`+4mB2gFekp_ix11K%*pJ6 zP0hSXS9}NIljzCn0{KNg5>#`bu;jX-l1KgYFBhr^ze{GK0>I2Q0_!|ePgBn{W zp?i(Ld{;5+&GDm~TjXoUYln5!`kX^K&LjFGI<4%R@|$wQ%=z)1I^9dq>(7Qc;v@7^ zz-z**lzy4e9C5kr3+Po%zgTEKx4e;4=B;Y!km)9^tm8HOHT)>AYtFFzyPry~8ll~% zT-EIM>@@|q7R^)jay^HpCSAANTTdS~-1F)+!&&UL!L>o!iSkS9nUpo{^NORRS?`7; z+UoIg)z$XGG&M~EKH<`{0gkHH0nY)|dHnVJBPvSk{Ic+2X1pWbX$ZTTfIQZ;n7%_s zx_MdJGfw-Fold$2?Ye2E?d)JZ*Qt8Yp(!t@vpD)N|1rI)xctbWHQnAi@X)@sJZMkH zr4rxN8$e|J_t46_Ok{c#s=@{EO{%tMhb#WMYWkS&UpDla8FuCi+t6nfu1pctQhOGz z41!rDRnw>$<_9<*b=%*Wn@1X|#xgUGY)dg3WMFPKg;;hh@TVJ9Rcjgb$aL%CvfT7T z^HzMbGmg8mWw0EZYAk0Rn4V(*%vm?9wXC>Twmjy`W*EzcGA6>YrUpRf=%Htkoe_I) zqnadF1XA+=?1Np(X4KMYITkBe%V)mUEmdfEWHgvpW?0W<-W=_l7c7<*r^}lswT`x1 zt*K3q;naz*+BIfWmVs@#mS+Xb!xw>P9DHL6Zn=wQ?jXG4CAD%xz^ZvuhSe=V;K;vj z{zSbFELf-bF6o*1V%^ANiB^U%_QOSLjO9Jp@8-|LoNxJFhRa@-_d=6uJnbEszu1_p zVOpocSUhSZs&agvedKCBPM>}3Y8g?i0IrV$LyUTV*^EhzdX2iZvaOqKgExO8XQPIC z-`wC_Ih8Si3Bl~vLh%CSjj64RZJiG0GX8Q|PLy4=ovN(KvdQu+lL?^Ne7^GR;;v3$-sG~Nfl$sOPRs@dY@ zfbQ$VnaBCHK)~(hYF(Gd9vDn>{;ZJMqOfP#)UZr0-d4Rz<Vq>Z8-Z6D1MUiKu#H}4F%uuV#&Oa6NX$P`H@P6r?F}5>Jhs#5hercW2&lTs>cL`(fQ^l7DaiL;jvaX{N zsH$o7t6G3e;}H`S*EI80B0#h;6O^7v*q%>qTCzBMBIBO!R;S>ed7W{cD6sdu_iS3- z@~7p?qQ&dbGsdC=qcNih+C`hZ6{`U)jhEE8$`4S!X~J_6l}bCibOz&C;(G+pJJlqm zUSWy+h1M?3UG}M{cgpFo-c?~FwMvHTL1340{W{WDs+A^pk0nM`4_kk@d`Aon0_zO86=n#fwQ0e6W2i-U$zpEw_VUh>f7M%p`35VrZJ;yl|8_Pd33_4|xl zmOC?XF!3HWWt=+3Xr8nLgY9VXTzcz{oIR6lR43gUqMSSj2k z4{;!TwEL~FAEeMGTyiZ^axGl43Y;c_96m#=6c1cK9=Hl0xc)e($8~)qJ8=DV;EHkJ zs!Z+5Lhb5g>4J3NBz=!pl-E}TtToH4H3Qb}=GE>3Yq9fcv4OQId9^9P+BKy`TBXG@ zC2bV7IfSSK6me(>>7yt{xiAK7Uc@XgB1owZU#TxcsV^QF(U2F>0E}?Ui*N%*2rKn@ zEA<&s8~afk!%`cIQX7*|8=FuYV^MEWDfJaA^_eU6?J4ys0waDX_2DS>r7HDJX#I13W>;FCv2sy#B!e9T%+|}lk!o{t?V<)Y~n!f`J&;W7SE%&+V(`MUeY0E@$?8m$7in@MJZz)@dDUo3#pMQ^h4jS=ANWnu+!Gll1LrcN? zm=YN>5)(QS6FlOJo`Q#(^6-(C4W9OzOwF8L&HTF>Wln_l_IUoP-6=()qD+(cIi}9W zf%S%)3=~)TfGN=n<$+UK$vE4#1BUS+cBDl7!aJ?Ifl9YEn_zGG5~qt?Lupowpo_iH zeOq_v*3N7>HJC-V_r9ii^)dD(Jp!d8kQAN;S9y-~!64p?;H}+_Nnob6;U+V;V1Z8b zMEv**8;x}Su!1un>xbsB-&Gc?b$(7gccs*eS4>VJ^Ljr2+E2BlPYDu*Ezsn1Vyc%O zr(|gG_P0aqL9uza&|#*mY8T&K-=u8*(LaZ{S{Ht{EZVg!ihcqNzlD(b95^WqCEKEp4I`!7 zEQu16^)>rnwf_h$f5rUQe8oh@s`-}E7rFj%4imR(4OzK`GE>X}bz3%hUekE9r-3YaeL?y#@l=u?X7pq`L(ED~bnXr=);1 z;x8Uhr#;OoS}y62yKz^6Up0v66s4qh)336U=Q6Bw6P%Ym+o6HVnkKu*XQ5+{8Y;R% z<+&6+d&YZHg`F*lE$|P0E0C2x^@HiH3(n<~Rth>!x>TfV7~-~i$_Cza&h-X{e^0H; zwpaE)Fd6ykif|JE5ZfcJJPFL6g?z%s8(q*z_Guk3EKS0GB}rxlr`h&4ff}w)s=Cj>HHm!nC8dBj_QuKNBlf^A|Eqc(K_0 zNPHW-_$$>UXiBfxpu`{GnaWUf^=CwiPMIm#)A}Lb{L|$O^8RLLBYWAy-LzD+CzHCf z>QNV+KJtPLL@TBfZ4<+A=FHr}7Jg zcs)k_iQq^cq!Te|=9o;iCw}X%HIwhaK-)d(qM#5^YBcs_!0&$>y!tCO2_#Q1v1nyT z?yoeC{YR;b@4YYsqERd<<|niP#&9m$_dpoRm3HR5XKGzNZD(80J5D_t1DW_Z3vhQvAEJU>{M!WkOwb{63SZtp6(Qo#(*vPizal72ZhHyaC==)U(h{2oxyiU=TA3AHn>u5te@qlMjv9naOU0Q0)J8?xH}IH2c~zw-~x zInzzwI8NW3<@q|W5`*r~{hJ1#DBj(S7VX@Z{e^Ef|8AX8H17CphhRzoA%kWhLw5oSM`UoD~-QHhBdSdSmAIL6Be-pX$BSQM*G6k76=Mck7?)C z$q{R2MQwW`Dg}*g%;yPfGPLrf@T`N6A`>T^I!gDS`Fm_cg!x_AqXubQVs+@(3PNVr zlbet!+Few@z_bSDO9RzV?*-9KL>6V(#ZQ(=a8F-%@NHKm4-Cc)S~eYZ7k(+SpoHg2 ze{eVzOVVP^N{jYnjoh!AtsD8Li`C@34kh7H82@AIOvnbGd+khj{oMo0OF?$(svh~K zgu|=Fs!vvtZYjq-|5rVFY$1y)Vr+qlC26*Z1>|dMAmgsrxaT;Pqud7mzx$S$eeRrG z3=^!rC$vSe0k=Q$#z{O1dse**U#n_k0$*8GwJM+6!rE|7yNnv zv3PdXRY9o`h>d$(>7iyOeJgwNh~ABJaM7A|&@|;;T%n-YQBHZ^IcpR<3k0&pm%PN0 zEgs)C3v`k<>{f1{Oa!6y6Nt`=Z&jWj85>NcXN=1tZtrI2MsljRPin|+73Eyk8pan; zKgGO7J9qW{D$a6KxAV(HxST&u#T`D3WwRnB+=8psr7qGA&A3Y>E=8EQp{ysE*d)&o zzndzDGSChAYP;Z!|8_|+=trx~#7shVQEV-mk;JEX*5}u!XO!3fr}w*6&O>{%c73;%&gsVa#sk&qbQgc0choKR_}Bb$ zSp|+d?5u{hp&R=I5cSCErgJYpWyaddu0hJKf>Uw1B72S~U9Pycm_!vpwVr0OeyD!d zbsQ?^F->=b3RQS)dL;J)b*fIx8DndXGNmh_MeWP-9Nopfup{(P1h5 z6El(#=4UxlfEaTmyg5JM(rADHfMi4&m~Lc58Jv!2o*$I{$s7|P4R6j07&f9L0MHl} z2c{bv6$hsyo0kPi!z6v89PZAe2fnVs{J$$-atLgz-Or!)sF;QD0O>~N!Rb~;D&2*F z(k#p_JzzMt`R>ACX}Bb7qp9w~AZa${>uxYC+e9}QfsGjK3tRUA48x4_87#t#(nHVA z9NkS1Q#aI24`25UYz&)(MoB2w8l(+ljs&29H>Uv<8KvR_J~QJPv3{1L1jsR`!<*v) z%#2d;0QAh-Mzx>8&dj4d^jyqz-4!3|{&iP;s>1}!z}6vyX_?DEgRPm%dn!1YZMrKy z)(v!5z}4Y^bztkzz`V@IpTXYD$2}EX%mm%GAL@F#-<^^%z!I=^NMK6l%+KHnBY*ho zx}ZfEa})pryg419(x?$1U}w}Av}kVB7_x|F-WIg@(HsFl2yadW$To7v2k0BQ2Q8Wz zxrZ#Gnl}Y4!kVK41mMk?03AlR_yAZVv_KvsBeY;1#J#*Ao=0m~lUY#hGz? z^w^mfjcR*L2>|cX9YHOoMvNgXpZ98mT445&0d(+tw19G>Dtv&AQB_cjxlvU}3))_5 zP|L?XcmP3M%!SRYXV3`_WE{~@GZuHq{^My39dr!)anBmUrCAD~Qv=WD8DFGst9w$H z^@s)`5LW*aRYoO3Za?zGCW^AYP};B>EWc1v3kiog=Q9Wk&&TKg>bY}C%l~zD1K2Ga zuek{4nzDR(0M`~`8f#8Xe z7&88YM*bJd{SU&A`ma^te~|V6LZJVk*8hd7{s&UKm!kD0pWPs{GRzkspBq_uA4EVS zk)BX|K%5b8@S&v4;gam{2 ziE^lW238eaP5>6`Gvzlq=5G?!|(h<9nc65?(j+vq|7MerNfg~&?j zLJ?5K_#XMz;?M?YGu85wwhBodSL5qCF z<@rzkNG6cDh!ifS8K3U4chl+)HIHOf62eZA-?%K+cX3a(>BRZ#=9Bj zj%VC1Grik)dPyS?N_4~}weeS=$t}dm=O9$Tb!u~{#Bs;wmRn)D>2ZvR*91MgA$**t z&xy!MuW8V!r*l@^hnnDrP5M+b5@)WNnMy{et7i%Ve2e|>Im9x zoj~va!7aG!#@*fB-C^VIPH+qE?tvW$?(Vj6cXxNad|%yjt8Ue)nX2x$d#Y!C%}jT% z_gQlgSGtVrpF-U9Hjt^YR$EMAZE~A!LKtWZ6woF*W><6nC1r5x*C782X71&0i(WkW z2Ce(9ng#RtMV~8Kk%pW`R;pIAiJ0&y9Hxa~$bWDjW*vMSoa8jzn5(Z9lB-n9jBw~>XQ9bItv4$kZ*i04mXtbk<&A~F~wh;bcGD?Dv9gp z;}7ZHo9(J$Cb{qHLtqePjkGgNn4cA#LGrU>j^E|n>#m=#vj+9U#3Sw^knU&5GFL{Y zk>)9zm(Dt`GbmJ;_88LKm>G@V8f0^RQ`Yg?S{ZH+qZj;U+3tO)u-xp!bqKK;I6%2$ zbg&KgC>hlWrVnTB*4kj#q}^V-)Q8Tb9GRCtHm!}Eu0t>6`rz=I?>|ga%k0O-33+BN ztNN8AgR^5y&cvV&&zD+k+kPcWW&O9I+v`hsy76h5@9HKXPRPMuSXdf;KaB?fB90Bd z(qZ}&x~`3qV|l70R>AX?{g(<76w9SkDZqT06p_Cn)@4W28k3=U?~YLm!$ z9}!W|#DICRWRe!|Us0st(InM^to(IQAAsR)`(y}s2vZTr}>zll_pB1Dc6b(pfT+;B~_{k^s6xm7;7qwod}VC$M=7O z+rMHIMr_0JHR4yQl}UnAcv&MC%5+;Pk5jPmS4?Y}9qqA5>1|NK25^Oa6I6)|Lua!e zQ?S+8uJUF;-ub6P0o^goo1IGYiin>18rN5T=kN_9y+tLz3)Lk!zed)7QLlfCSI(dA zudK2nB6(D}0iM6;O-3KJK%#`p>iRU~ZV3xoA=x_*lDyR68>7w=Es9Z$=Hxjy7I-+- zF|;ZTUp&53?*z6ggoEr@-w}593kE1Iy~GyLx9$uTLixx~sZA81yt$1O5P=rL%MqoO z&<;>+BF%rg06lzhL*`5+aop6rA_rWL^rzj`GV0j@?6Bn0#9Ux%kAZsbUliA1J6%1r z%r}Tem`Ut+EtBet-3)`IiNYDgc{)4SEyrjkO^eG52^XpXpfjlO@queODipW!?dd^& zS-(=ly}IFGL+h2_m`SsL==A$>RQ#&0wb?sg^#vW5tmfRj& zkMH0ny)0E4=CM+`PJK}SW2<5XNWl#-ETP5(-PAN0(eOdSWOEf%_a1^Bz&`6M% z4`Qbj-H*$h&mqfDPeoq-(-4mCx)B_|T`!$O97o!$@YjJf@-^la#48z_43oHeAj9al zFjD9~(|Tg$h0LdWQT{OPed2ptb=%=3(B4V#sR1w~Z&R$~O_RuC`Sg-OZiL)d(LP{c z@(ox=T*SwQKK=R~=Kk9~#69%=S3jszgik6ma`YF!$E;J6m1k`dnVX`Dgv-!M=Q`gr z_l}@v=xq``q6AinkrdS8sOhr@`i3P};|>Rm7rz`IT8kC+DqC-^SGPq5+W#Orn%~?C`8S$QSb= zI_I5l`tT$e^#3TMzAuDM(0}$)-n`I%gN;u>lK5x$vE}jzvvN=pezv;4vhJ4>abJ5& zp3jRJhg>wiK>*%?EWcH-N%xlb&v0Tp+jA$qN>X zKCmro;#l&Jb4D}kKh5`5FQiWRV?~z*{hl(_HBFQ^DaMe?NexA|K&rEWi<>tfYfN$P zktMDIrK13Ex;OF>Yt-NT%tQ5-OoF1pBb+h1RvE&ngIoH<^pRCj@3cn3ky@Iu+&NRB zN)+n}?SJ#W*l*|e7LLa=#n_)e>j_7+~-NZS0WazOgO%M zT%^h@GbTfv@>kx9oRVgy={S0X8bqI~_4!4DFU7>yPut+_D}_1|hyD$FUVTqA_1YQx zs42}UO5tsjp0?if?C?;rFuF&bo;G#m84qc(rm}rKsI|Roo5Bf{itM8@Ip5~Gc`x=2 zx-YW9NeV!_Z#=xOEru7UvUkXsKB!6Ld1Cm%C&bjh$5eC)P{MV*+4b?0OEYQXgQg;h@rLZGx#qT zn9=4sr7+LuioGmc;4f83s9r&X@G$Kcxr@vl411qH-yUA?>vO)ZZ@wd%(pptzm$~{% zCj?4N?X3^heNzds)Up^P{ZqWZR@5*hsGIlqvhpd^_&Wv!Y;ygtBruls(;r;qlJ`i({e>?4rW=EFZ-JXlZcw@J#}yklxeo3Yz1Dbxf6S)+b9o-a zW{^p}+4&|9R`1M4`j#J(hIsCf=(Y4Ie0CCM>!A#MPTtSDAa`DcJ6ji=U-*vXo{G;} zZE#+1F28jS>$Nu15q@ZO5bT^FuK5*=(O+D84IaOAX0dNSoe=J?S4{m`ywP!8cg5`( zr0#k;UApsiQxjnIs@JG3864$ZuIDk*TF5a0*ZqBN@|=oKZoQCmv`%*K4ZnvBlF+*{ zaQwL69UtF8@=q;hjb@RZI*Z%3c zM_r&9c}YfZoWf@oH!&UrNSlW#`H74yY579)9Hr1Bp(>0+qb$u}dG+&LY2@R{9)v6Q z=OIYHzfD_<+FGYR*^|z;54wL>fqtAWw}@39$l2mob$B?Gp;qA*cdS!vAkVLML@-rl zwX4w{Qg3CdD!SNpJ_Y$_xmIbHggHKSgvJL=#+wpLp9!NsUAeirxcqYs*B${+Z`3Wo zzT;^hj5JAle9`yQ))DJKN1R=2Hj9cp^?{~{Oj;^uGliNm(j2`^M^;a<{CP3wtUXmn z+voLV-mU%Oo^#$uVzf*Ga)h^)JMs)$^YP^VE|qsRF~`HvUi3vVLZ23^Rx~WVLpFMGoMVk80WjvKhfC+S(L9w7MV1->{vKF_uY7Xdd zDw_of`La+x{5iT?^lcr?Sj-r{n|PgNf4cl<11^G78c&@PkmhNpQ3XCnf*%Ganz_pN zHTZ+W1lTDX@fz=2YD&b@ab~t@zC|O9jr}~RzkQEsRr3R?n{_zXqr|O6ZRpRrI9&s3 z#T)Qb;ybM@L#pbj`5+B+{Ei%VfH4S-GV3qIe#4P*8Z#iAr7E=1U5?~c-a(ft*wlZm zx&yI1Lz?RAX2(svgkUaYoCz<30q8fKzJjFUU-i@8T-Qc?k&WkTwE}T-LPI`2Z@#{7 zudh~`A!8fwGoLvk9|**?whX?8H~v(z9H}8Cmt$6eO5jN5Pyyp|VpqO@a&WQ1HbxZia=pIl?UHQa-BRj> zA)o-h8@DLyr?Uk?EcWz}Gls})9)^A-e7UX}lVJw*Wzz?)`|+=LU=kvbRR;%u3)O6b z<(4$e_Lqkc_}pU4J<0}`zhm6g-{3hK-%s!WtO)Ec%Vn zEr2Vb#RCGbF1@q3Rkx=yEV(Xp*$0Kcn4YYWxH26b_HsJ#tW@nD^^V$XN3>nu^mbMf zZt5$x@M)2A^i2P)jP__v#cAKZ(|9@_DOsG87wi6Hym;W(m&tUM@#Eaph%=Hy@@XmP zj)JMDctGIybsoBdpl0#DbE5wUl6&E+s>`>ih^B8;N78htdkHK_J<;|3dA+~3dKxqK zwiDYA@X_a>cNYGwu-SE;z1tu2tmlu*Lv?sy3}eU68}Hd{l3fbvu7`ZFZuSv@Q|Kp2 zW&5<_{?WS@MTdO8G`o75nz6sJAPZ_{ytGP}Vn7)9<=iN@)OTl>qjoX-*Uzkd6ZF&u zaL&#r_;XTJBOvdm$`y@yo#fH;f?k8ph^=?_w7p|nZaNn--P|%sLlP7P2`*dTYHxLq zIag|1?>f{+QED%Q5gKcP+&|bkIZ^2ar$(h$ot0KSKIP6X`4<_|7IeVUo5H;m4@EQd zN5Ooc&$QTQ$H|MIZaiGxYuJ~1wwM`I;_yvd+s>hHv|cdSARp1elrfc4}m#hFh1p%B#DgvVi$ib;DPp(Vj4|9RqDq* zkw>w>aTG4zwe|`J;{5arsm`6ard;T1-5{S~y*Ux9(#QE62SdBOnTLF0+no^&Ri6cR zp1FdTn8Nin0`^K@lX3*lc}u(Nc)-qRLkCXg`mIu-$ecA4Mb$Hfi(laGFJI5WMo_(3 zxwXZSW^9n_HuZFOf&^7CPw|CmKgksU=I&XA9K~3TEROC5m2)`(JUlngI;>y@h2s3M zU}r*-!Xe=!9Gi^Kb2ojw&{VXZ0ouzDzlamavSX-8Su_9UusBZif~IEy#GIhc zHmufJo2?pXv=uevJonFerlhFTzw}KnPBRw!Nw-hAet6Q?&M386BESVj);lWxqrhYs zL88HYtm1Sk=$UOC_*_r#r+O+7&o(l{qi;n+sath-&E?tu^M>VnJ(xWKdBOIv_@esu z{p_qmXPqBde2)y|^7V*_m9f^a?I3nlTG7%V;rOd_=QDY%Q1D*n+`3-fo+=CF^{M2n zXnK$V?cF!Pv{kY4wNPIVknpKxY_NN;Et;PZ$RXz3U0z*0R7ErF8(8bD;2>+KK6h-l zHT5I{6dW0@51oc?9-F=GTfn*4H7|vQJB20cuPqz0RROju5)2s9$roTLy~CFHYCW`{uGy3QFWb_2$&a&naF3wVlJ_k%P)-gT52%$fIL9l^jWa zW6$fu+u0||&-~%{vIq@pI)>}6<3_vAxp+x^=InVZH5@e|TRiuxBNeC=mrr0b$9)c> zwMs$_{6J>x3CeK!zAzb_n!>glmE>LRWQgSPtusFP5t=9deCR$89GJGGC6hO&X)Ck1n*m z)N!t(lu7QdXTA2k>@#`&j&pv^u*jGm=hqSxna7^9P0tQ`n~Z4`Nh%MJg1f=I5-Iuu z`--_@F}{B$INkS7mP>~w?PB77{;ajo>rUM-`$Z3|PyLt2f8hm|Z8>c?{E#(_^87Mb z-`fB!XLH(h{lZuIiaE;oHFbj-Qppc54KEG*i;Rtm38bRQ?9h)fD7X5+)xeW;G@AAU zz}S+;gcX>gMN>Mfi zC=DFA z7woJbuH$bMj5b=3JL*JHYOv6>gV~mU)}w;R!FR`I`<^evtB~gEXCaqn_OPSqf;?U|6wQL(&BR}-7KV|OF8yncC60hA{GU+ZSvmQBQL=$Q7!sEv?e8B|~n zZ{|0eg-H5a?P?d0f@2?+n^F5LvC1*poGVOdeb?>ZUZybyb9VzfEgioXU9&vEj(B@Q z&!H~C*4)9p+QX;To20Ick^?BgIRg}c+6qW_ulPw2a-mPiB(tASXR?y9hLPI>X!~dG z^I&NpfOQg~A16T=BzEy!m2SlH0wTO(y5+jB zzuq2XE`#DyE2)^)w%qF!wIo5&D->m=j3eV(rr`Z?Jf9hbG56;U#qvc)g;}DrkVM6- z*$7YRNUSUatIpN8{+;NFWIS<1ek*MPnk%KMo^?Pghx0jg#cO-aF}Y39#R&QX*p9o5 zpvKlD#rB}5rjOneAtd$8VDDXs>cc)&X`;mc0aD?XDpz)eN25WHDr8vQ-PiOZmNHVI z(T+2@t(fH3U1XttR|Yj+ihAXGo1u33?6}lfPqFl~I4$QjrszZ2xxr<}Ueb2`g3~*t zMf;7nW0aq|?Xk)T4S^A% zmd?W1l=aK!mYg-fgpgh6I|;y&7sBeV&>c60cksU@{NzW06?#- z&0#WdK*(Trh)+(rQrSQ-iL%_z;Uq^?VSaI&>)24UFxia>nv?rissO9=i zWmRh)Mn9Fy$}u^}@~p(&i+Y*k(HWwE;-_h=aZaJ-&f04v$R`rI)qegs zvW+kuYsMB~uCiahpMGzt`i{nAaQ-8-#8=qr!20EvQ?zk?oZX(i1*`Sp61rpK`?AJx zh@31gw45wWIHxg-jWH?|JY0~9*+xJ;L^W8FsCZZt5^k4lI3`WY=$kfDsu9~R40204 zo;G$yx^^0_xKYti%)tcqg~_s-+c>>})m~dV6EX2%V`1__UL9(3e1)H1PXwKTP>46B zh(K;6nx+>^0Bx(aNY@}=gB{FxgH5bmMqcIR`2vp_GCOp7vtxeZ`K76D_Sv8}U1d-` z#f`z%a7lOrA6gsOzA9z!J$e`vN_zUCiqX@+YYSLcs5{PHE{ z0Vsk9Z)Rue?BZl*Wc%N$y|EP{JTnt37dsIn(SHLSB6dc`&)|PM{?qfn^?tVL5&i$; zas1DCyu1K$ppA=}6F}U?$i+<5%*5W*3?OS}XW?Q=#LURT#r1y!CL&gr&w=>)5#j&m z0X?!#z2RI``y1}pUFA!8(ALPlGP|~9Qov0M5(%Ob{ic8nHi9LS>>+|PatV<9fn)kZ zlqh_+0LwzmaUdU3A1)XI#exZzB##P~Dm-tq@^{up#ql>tuZ>oF(8rtgoAuJ%3yPZnMO;8Vch~|geHQER1PwM?Xw|v z5C0r0ie`iN%dxo!e*SRF{!jOjyWg)xyY>n;CsKWLn}7}qZ$+b#aZdx3`fwtvPcPya zaWLnJzn34KMygR^E{DdskBAduF@&f(5|N z0)dqxJadKDw+7^M@?$=nx9l|DeACwhC~vR)Dwo+(S#cpr^6XxoeFa;J4NjB!R|Co_ zBGhSMh;Y3i$KwTLr?b^?44M-X!=RURZG^CTsvK>u z5}{l#)4PzC0lTlTmfmV1n`pLe+68Yy4FczF7a9+t4##}Pdm_1FWQ3*Odd9)-4J0UJ zFilGXk8!w%tQv{p0|p#madI9u>5j*8LJ2KPf|Xu=B$3D)=v>CLT>lNOMhP`WSd4ab z$HQd$c1>4`q9%=i(KVm5p~50ZT^LO)ZJ2D#EAK~%pq_xVP-v>T+0!674R+F==!979 zUEI^U8fS60$jMMl`0ZfZH!V*b}#Luke<@ z`{+BU6tE~p>B(=u|IO`EDMu!E2FWWHxi-57NS9p#Q!($bHloI+mnVJQgv+W%0E`_dmsPN3dt5%wEBNMPBqwOL1IQIptx1 zr1-lwNJUjgWNVU+E-5FX+zOjW=pj=ICZ^H9-W%DZItvB-{{STqK}<&V@3&b)yKsm8 z9JzziGDW=6XW9r;m=#g^9k=9ba^M*kf`IxbOG>pFnE|8o@xn4J#Jq@GCV$x2Jr}^- z6ytL2^HG`#`n(TqvICXe-hxNG`9A2UEV40WYaRy&U?;44-)>dqd+|+OyvbyNrV>-p zfx?UFHdT6=xF{@f7KvIGs3J|RCI3L2CUBMPEO=F#h+66p<|Q3O z1+Vz>HRaAhDB8T!c zVddlg;`)O>LW)(HKRHm!fD5K%c-W70Zxw>g|9nHSIO&#u%4+sJi-tbfS( zFdtvRKwRL!T?kB*ehNoIWtd;K5P%d&uqNybMA;Zbj?AXhkt>|4i+v9~ptAf^H(Q?e z;Ad7$yBSy%!yoOL)GP09B+%N$Z<_>(a1z8Po4-eb6k8nXw_jYBg-?RS&KUIP5GE(I z8N82KwkCCVOS3@i{_~dRc>|8SL>=HOqysNBEN%HtZv}0lG)nZf^(eRw^?f7)=h4Cu zH^GA-fxd|Nx8RRyw_d@_`q?085%?F?7xvBY;sZ-6WhgGymz__m*DD_1IQ%sv0VVm3 zvik}}ffNFA4!sz4Gs`!g(@n&&3-04U{gKIDVF#HL@6fiz?DF6JZg%CB7e4{w8DoiT zFpa3mZJDF}d?YF#lo~g1%OVPntf`8iL-NY3L3}ay$57kLB;r+hmp%5?AS+K)1pPj= zZXWy^uh90a(dGiY4M{PdXo)LBFRXG**Y`S!;?SHYvyMcb>kGuUhD6^#1b{mjgG=<| zZ)Yf4oAl6Oyok7WRZ27OeB%Xe0_%VUVUq~y%xLoCcA4H6Gbvrt&VyfuMF*J zgDL--piz+A6!}ZMZ50s^5L2{IwDJm^^FzHNkt45yRa+*`qo>WMPZ%lx={tL)c&J0X z7CzOXH2*=hAM-Bi9v|h*igmCL%+hhQG{k+KFt&7O_n9Dm^asMBegdyJO#nR~>o9LG zzxf0D2^iN4NLN!5k`a?l+VrYhv7-A&(5ebF4)Yw*Z4pmD7*N1mi#Im%Ay_h91aIFE zK0;HvdikMrxFt&uQJ&Wyp)B^LGP*jIoZ$H2=l`0YDqbww}Ny(IxeHNKbrL}zXE0`S${meg)2vL!Tm9yD1?3dbD{VV3LDngj72@~ zfwO}s6sM5?Ch~ijv

VK5Q|VuN~n<8TNxC;(Yfno%<04Ot*j;i9D$L^nCC+_1aKA zlyXDLoA{0Lkg6_Epgo4=p6E=FZdRpOVo^xNA*Bzu)UY?OEs*1S#Rr*JoUQT+yGo3= z8n#Z2B`R1_e+mlKKUUo_Wgc=$g0LgN^>jy#^9H%6rR4fE&k1^iLj1axB)xMRO_%m> z5Hj38C>$~CwjvU7Ig%|L(F@4eN8E=1BvBJ5pm`QFz`k;iF9%|Oxb?wAal%=z_q2Q9 zPeh54pqPj|P+C@I!U$$+JEO{<3w9*i2fMdp#cwi+`qgr3uM#88a8JS9pdUVkhof^B z-@F~(6jWbQpLWx-B70#A{|oM__AZ0O}q3pO6`(zP)ooqN^s(r&g;*>CaBRaK4y}yRiG(_nv)Ltlj z5F!!jvy3oCb94WC%MdqUSSP}1BHk^WLVB(f?nJou>wQIuwne%>#e(rd9@_|?KH%a5 z#o|I&%p&=LN_h9|7e|^nOMW2>({r51L-?$WIvGeoJN}lmrr+tXpL(nsd7iv{ie^4& z$5T@bQtBhvc{=c>5tA>vzygT$ydJ`aX4Y-BQ3ODVBiO_#2<8Me_o@5oo{ITlb#|-t z!zbyEkN1%<1-M@lXVJ3hlDkD{z5eC|AYJd&Y3NR(in1#s$1`-Gg2Qdt3_6i-5~E{H z$vny5mKra@X5(}*+1SWCtNtpjmol-%NRdlXvn!iKFSDxKN;`qc*aoWPwijuSlyx(| zF|+kGau<2$OX-?-70Ose_ild7;SjZ}n*5|I|E|AFHqu}OTB(v;LZn99%_oz8BAvn& zg8oX4fO=_)rgqux1kT%5L+gmDf z-eTx+2IR$O(H$BTCXk<_5UxVmt?=wQw~W08L567W3A?4bAxqpf;3B z4d#J)%!bRjqPBW+d<0MxfGK^#B{ma}6uGt?tr?&)Ju2gXnliZ%F2lb!H<{7+sB|bo zZ~sZ(z~X<*yH1pOq#Ah5@GGfu(9x!_Ljg#}paY`#3LqQ@Eg1&ZYTz9unfKq}K%2e1 zNGFbpEZ4ZLKRlsLkod=1aBRrF-z40m!EfAgWp0Vs_4D86>Fy9|XNlUVN7mjTu#;vy zeeduUaNGEJ;E359{G|yCEf`@hA$@Fh3@KaS7qyI->sdNV8Q@zJU>0Mzzo-NpP$zRk%uvBC>KP#)n`Q;$%gB~a zbm`ARE$SFS7h`X1Gi1Y`7BVJI2WZXWyQP8{!@M9~Xig=L25^oQ+5;fb_2t?Fo0Go& zgnfl>jOFj@PJ;Vcz!+B(J#!g>8m7d~nClb()l~)Lyo1yic?%>(#}wv}7k+?&kf8Y~ z793EB5u4vVpm9m>+4T=T3P@G`D|9P|Ro;kt4|0$;OAu-RE<L#Q>=E(nZushO>8jUEdE;crZkP4MgYKhz+QNm{bubmbbqT&Q~>k3+mC zn&ZJZ41m9`%iIJ!P`Bmo;}McF=zj50+!Cq#@yICu^463{55X@T6=;3rwrSE8=MXBT z3$q%g=?ix$)dKm5?f~GElL-V*GH=$x=N7{6h^z)^e96^#gjj>~L1_xpFGv<7T!X4q zZVIFc#5*DsrrEzGtNwEpjgz|}wm9-AgIn>`&Z`oLkslE5x@qN6838Jhe{@7m>#(IKJmWuvq- zy3x@~>NOw-dY)!g1pGyy$ReiEfiSr#E(g+2^d#`*$a4o#bOrDQnTl5u0D(Lub6K3L zh;ga1{DoH*FEE$-HS6814N2h%{<5qGV2O5#T@CFh!FKu07TT};lD3bIXUn$ns{-|F zhCWnI$wD+fCx|>J|E#MPzO(p~xV1WF9ldav)pK*ped)an_4@UZ=A7RCi+=$}paAV_ z$U1Yw)^|_5N4$2Eq0Wm=gtoj(k~8)OWqjW+l^T|c^ws4G$jbbDhxWPejS3$tr5|TA zADy>H_V1tN{gMBR3-0y*Ysd0^zW*rY*L#;6Q22+~S=iG3K}($@&)o*o9lWCIYwa;9 zRDHs{xMkBT7$K9K)T68x;n)Ujxvi+AAVkU&@T(;M7T=U0^v*g$<}BoI_lA`#@2|Do zxIy@2^mH9&e$DbMaD3(eapSM|XT6&=3SL5&rH#mcak7m#_~l{raE-RzBJLbmzSiO< zb-qenZW4B%n>i)?LI%Z`8uhXh}j1}WP@k+yu$ z^zw;sgzM+$>t5^hhj}_@5E7C~3^L9|6Y~WeTyaHVWZpQ*12`%5yN~Xiy#S6i*UHh3u|;gv#n>^5G$NV5AiylQ}gJS0frR z;_u~D_0nI&sj2mGPQF6tEDWd+yHo(_fSzgsz7B>EMz6Vj^fh-OL)Fn_$H@FDVEm8y ze5kCX<;>VG8CROpMKcEXMRLcQta$G)vt0*tuErE0c64NNJ-=B0P{~2!@ry;PcU&!o zQg?J!Zo}&!YcZ_6$X>BG)^1bwG<@m@o7;+t^2vzS@6m=URbyq~L!SrQz&ls<)|7WW zSs^ifKfNm+?C_Vtm6*t_qc-xqMEoPPqO}DCQoox=$=zMW>Qe`{`WqcA^FP+4c8uA7 za}2BOqV?C9OPI(-ZPl0?nT!|j_uG|SjE#KIOOZwEPc}Jm zx*vu55bv{5$0E;^2Gz&Jn)A;Y{V$d9B0Ii;G;#J79tP;ojm0_)&))oA@;D7~Z_1;z zbg|Ub2^6HAPTvgz5~4ake$1({u>F$reOtrq+Vm0Oee7wAw7bbn8r`TIhT*e>v%#CJ z74hb9Dsr0m#?e6)zr0Hq`qrmW)Ze5hHW#Wyw`SzXt6NPK>ppTEX>7XI@#-YPVT+y z?^aiuS~xq^QPNdXwx#=d;I_Pqky$^rd>C1iwJn~iWNV{^vUB21Ij{C9b?w53AE|V@ zsmWK<*H00saj1?@0)h#;<3V1J(UB+_qrBwLau zo38JZG{40W>Lc(VGs(RxKFdnyL=J0{{#V2u{CRp~lz(oZg|{aU2~hjI+Dc1J9L#4NQF|hdDBraXylhG*oKvLn>7+5(1 zlw~7P%iMk4z7TY2Hux&_&woGb5G01xAJTzyZB8Pct@tY*taoT9N*NRejSlcju73Sj zBAuXE>c3X$__n#b*v1lW!M!`maSiWbI+%7&-!E_%*%<4cDqsV?(Rx;J^y@ZH=z4;h zYg(I`=X95*bUl-snWuEq4gW@SXmF3Cq%cN}PmiG*!_{cgeZ^cOp)-vrV~_RXyQV=y zF-(m6qF3y7=dc8*}OrV#0dWNWBj?fA3 zmgLaenzbimh9Dii365bdS7nzNeyb8{di&POLQP6KZ6b3}6!62~OXL{Q@Y)Opmw#Wkzop1TlFdh>&%pQ| z%Lvo3Z7OdT6`;UL9QgFzXGkR$`j{T!Uj@Ecc;z~UBdJyFwf-L z-+K7@nY;G~Oc!ru;A^gtBvc)wYMv9|3YI(I;I0m{Y>H-G=4clBsojOcib4@!PCyTT z$m#kE)JRO5xwVJ}H^V+Llen5JJ{7i_^2x1IQn)(g$R#LzIK<2;^f&Pl#apasFKMMp z^P1sD5mmQR7%zt$sJWi&$*<}S=QOv(1kVguDPX(fVNnNoX)VuCERP2|(7)We4~dJh zrix7U$j=->d8P8_)vn^kx>9?&OcuI)tGCmqX;=WT&nG6fbP=ve;5ApcsRP*KuaHKT zRV-)pT*6Y-*ElZie ziWwDoj40J)N<}e6&A7xLbEfq^(%21xBjl_1;cbiVgU+X64xgSy-|!Oa&pqBM2C@gd zc2tgo=MgM%K>2s7;}o&mIX*B85t((elGLK$Ni2~LbzBiNAf|Xz=DbqOGn*m4`@T{e z)=@QQSi=F{xZxfiU*_} z?vy16Ru>h1hT_FcouYh{^2e>(I~D~VTEk*YOMdQb z>`(G)3n@%T)xn%RLomOlA1`$;T#x$@5^fg0MqP&glavt)@z83cSx4QlWU2SA53ARx zOVn&Gd=Fq+PXo3IqD+2#8*?U#32u9f7H*VwmJzbYQ+FlVWDrhHU;C}?KMUQNoDdG!?8Gdgm-tzn z24cGXlJ%Non>-r+eJVZX%tv?Z%nc9BDzZO<8JihHIqlA&bk;c4!Bp6PYWt0Kqg>SL zfg$iMy|YWLEoNhLtu0Jot5*_>(Ye)nIE4Q88#)}NKvDKb?GGCIAk_sT zJ`w`7lfJ}l1LMp`K_4o4V!c^b`Y*$kT6LJ8jxa^8^9l6~+JvB7w|ez(R;A3s@db5Y zMg90P;F;~&!#BvUu>4QrRoi&Y=ZIz~5;|Srq0+BIcOsX;G{` ze0xWFGh?ie{4*?x$D~(6+ycn@xy|QtLNiA)h~;r!*w%~Cfp~{}A3pmqOh2(Vu8eu> z>x;zt46L1xr~~EZrWArkr%4Xhl!q&05G?K!B>lEl0pber4eqZKdnZB^u(epxVV7sp zfI!5>lei*Ity+XCYf#L|30;yHi2ASo zC6P%id#`GhYcYB|`aNIV@#e<*z_MRxEPX&+IVqkCRl59*%q@dLs4Z)ldqkLp*r$h+ z!?nH=?09V#J9N*1#}n|13hGKC3*iiY%DXr5<78U~_PzD`Zgtp0)&K;;pgpcCJSc~~ z>6AJxvOl>%q3sJq(2EuXrRf{Od@jXdg>P8qJMz#oo(CYkLm*efAI$j94x)brdus@m z+&7iu-N6kN5Wm(Ej8oVW^7fNu=_krw+drBYFpTSs@92%|CAzd6&bsN|W*kCr-Qjbh z__4$Sb>t{22ZX5cgyp>IF^^+lk#&Az;7eNvbsSI!2GVcTNpN+pk3FFu;n=)5PA;8G zS@`qH;2gOg8JM}8_h}0Tw7Lp6{w?34rq)Z)X$UtA`D&+@QShV>7ma9*N%0q1+SWR* z${%FwGrh?W@x|A5O;SU(X>L`QH+gCfAJ}?noxtO1ILJN>In4OT^G|vsn1wSw==&$dq=bQMzO!Kx_D0o2RsYz zpiXDJv+r?J9mVz8b0)SI4qVzitDlavafQB}LmMQ15r}Yb-zzXjKhYc3VGb2+baYg! zD5wO1t*9N2vGZ4O5p&xqanhij^e`F_^QN!p(JVCB8BwF(H zWbq%58bS2eVXYaL4KC3{alNE%aOJP5b;k7GgNtidb~MSz zD3(=}NtFe+w%qihCSB?2=T_L)cYb6v+9D`KFQ8yy;o*^nH+D^&rU@HXnB%zF=dtzb zj{`jMyC)iQV%K=3C=?vhDEn5JsHr(Q`x2(5?UM`KkqfN;P2u&e_t~AE%{J3&MEQH2 z$yclaFH8k27S8So)@G*ni=Zheyp$nSR3KH9cWHKd3z?PM%K2JKJl57KsbiCh(8n{3 zWgJUfq_0YLi+{>-r5a0>?@QVn#|aYef3wOUz$Q3{n+-c`n%&#_PCN5CU-AmTfcKGK zaJlT5=3`_No3Yht!c+M5Osw8e?7hD@5z`FhmZ0$5_sO4Z2rIngEKyV^aZ|(Kc_l~G zt?BU8d?;d?a)k};6t*}bh*LEyvRu*fkBqI!Z(!i7`PVjqc1Kz)!OokS!7c8!zvM=5 z>!Eqc$~G?Q^@$W65^(UE_BN`NY{*u4o~j+)!MVXIX3W<$sD0HnIGv0S`RyqwY-3f4 ziHGvyzvw;DRTc?4SU+nwpK;@8Jt|ta5r+R(Q};t!l8VHTv53x;*tFLiG6)tsk{4=g zO4LfQCFwU236bUxAOsC8VV+=-6dDQw(XhMuy}8y8^o^JGgO{(p*<8-&=`1W36I{;b z7w2*`?+d9;NY)F3%N!YKpqME6gCc9RS8eRi#Ia%?=N2oFUv>=F)KmAn_xKxYPPW z)dfY@1tol*iX!C}Cw5kfa-Y}dhkk}qW%+%x>H=R1{y|7Q3Z+D|6e^2q5>%2K)mLn;Y}%@P+DLK>qQ(*aY4$M?zU zIP{U45{Q_gJFV7%>o{Y{TK#{biEzkQVDsP5D^f<0nFl2=_blX5shs-`B^JNXx&9yK z-a06*pnDq(!Gb%36ClCeoe(Su1P|`+Fu1#GaCZ+L7~ElScXt`w-FEVRE8n-fzunsX zV{5CrYN~JdJ$+8kdCuv&_x97sY@dUt=)E8xj!V}?EMHV}3U2PYGv%~iLo{CXLB5O9C4x?-3U$ISb6dVV=M{NgTOoh;z6}eZ zI2twv_s>X770I?g8jR~7bxn0ho2d`A>$K~&+ecfutg;UXNU&KVd~#0%Uq}isE+&IR zB@Dv8(O_SiA;-SZp%A{;>xWq&B1+iJhhCSoK*y2_e6W+RV;lIir+}RK&8Xlve!ct0 z1e>{CaUx7?+s%{;Zh9I;T5RG`#V}?18zde}IAxhnc?pzQ-i0uE;-e$fLBC?lHdf^2 zACN-~$_;7^0{n~5V{$!93D`*56B3Zd(3@~EM7e#NMS;aiTz2j6eUU@)K&$BJUdlYi zLPsNAwT4{wCc0GQVVn=vk+1J?kvweV3$G!T5Rx6}0UhVy1w9MRdk6QeZ%Au92FbrGDXF_G`w+~D(l;Ma;rtmS z4J>GMQXow;yRfz=PAKGB6-461@iVwAXb91_trl>6dT8=UlJ8EIOT7 zd5|V1W@Zlg;!b<}j^U0(jXQR#wJC%jX6z%xW}ca4b|*@G(k|Dg`^U3(v~3p)BTUCf zF?YvHp#rN`<+2~~{$h2q@`V?azszB8W+J8liTR+!N4IOMNuoibS(QPRS+YU0*5UF`6-aAI;TxSeR5LGU zqo(ApjL$8rvGioi(5KER#Zt;M&0EZSn6%AL{F@le)i<1=f_p-aXD-80A6iXJLrnAa z6Y2OjWA>f=t9jzc(@y#Q{G{Q6a;#u@L_)NM57wgUGQ5C6Bgp^-OICs&Op(43yufrY zHhJdChGlhVdMf-j0;iOJ&HHApYSAw!@3D<(`^`AtIS1$$Z~pd+*B{{FMKwg5MvXvw zCQqzhI4Ar zN^{Us@U#BtA|y)C@!+F#Vpr7IwNthJWybLg#E%ScPaU$Pkuo|ff;)ym3WAf;^YGlk zM=zF%p;Npmf)UVWaN(KBofm)%T%dGfm7 zdkwBQ<34|&XR{hZCZ}rnTtDRTHN4}mJ+LS9GgWe@jy7U(&pI!a9{E7$QzxNiyK*YU zq#YF*Bhv5KQtuWP(C7T3A6BIZ>KQU+H)1M8Hw^EA#Wgu?)Tv9C3A-~9Qz>AsRf5Ty`Zgru>)=R%-o zV_<4wAPwcslHkcv>`Mn3z}(wcuzgY{#>OT}g2mpU`nxDsQ$#B|?`i)&z~TMP*6);o z3Cu!9DY_hl5456R7>AJ1X7^~tJjD!phkmbM5(Q*07;4ALY$p)Tj`Glrcxp^34qe`K4;^Bx0mW$layiR6)2Fr3$lAN8qkA9e} zA#CHioo>E82}yG_D5YdwV{uw-`Z^Q@Tj?QoqY>}+W`&&wM2;CbNCj*dVw-(^|Jb_v zJFu<%M=saIvc715UAeIpLC@7L?$>gzULw?etwgo5a|Jl$o_h;yRnUO2PendMxAjZ7MPODqvkdIZuMScfoUXgnyxunCV z44~jE@4WoYl?P`>^nUtGj!_+U6HR=U$f}5vWO743HY8u1HVmuQ1^E5&OW+YmUU6;D za<379os__}iitLh>!Nuco5HdYB9E~MO0{uY(ml(+yc4NX3Lo9Oj48dUPE89KKMGQe z(&}E>j-lZpy6(*hB1zStL-~!IfL*;z;!ahso2y2LvEy*&y;Wlw_&e!mkXa;6#Y2a5 zMjefu7F$&h)wH_b`>DIN@2*$o?rB*?#Zb2T|MMTR%z@-}_btS+9hbi!(5U%BJY968 zEC`BX6Y>|GrKH+TQ6WZ%9?qpc6!3S&gl!)#J1-LydPb3sWPi8+T(em@WI)PC)xvU;c z*Zg1BzHzGR-y0qJ`jP8D^{^Oxc#e}gh@FSm(OP!Tf>$qHdTbtA^c$X6t2JM37MT8* zX7V0`s-}pxJ!Y8Jq|6AobGBoxg8M3u4`%p#dEeSS1noOf;1!_8Qv0QK{ut4nNDcDq z==`dO)|Fh#+IL4$JtrNk!9w_m`N+o@dC-rkCUw57POzPfwLpG_HB-xaj&)3B_pu0Y zsZKDhOHHzAxgj!sjuIO0)j*T>}jt~aQ{IGiA3VO2YO>RjUD4=t#1$;Ii*i- z@^g^RCBS`D8p6d=3TT^&&^ZJ#PZc?-N68GlC;IJ+4RaXu<2Txn)y_LK;70&a*bq_? z>BBEizQK#-;FCZ~^wT=g!rw9_h#Lr^9)Ld|xrh_EbI8!$*yIh+6XhFl%8@wdf+fG0 z(_F*bHGMcU=)?$`3JZQW=7;bqz3raz7i{=+Ccc)fg?vw0BJoukmCvu)|N8XnsJ!h| zk^ipE*TD%fdW%;~Ii7y4862>1Cl_&FHhcorKzVqs7a+$`l>YO{BQ`TN`%$dC3ihDB zTSD~|;kQR8EWS;5K64)2Qv+u1?%LmVPBn3dzFDH$`qnGfnK~{*gDc^=$&}rbvL>AV z*T3K%@}HdM*{rc5o8!tA*>at}=*XNV_mJM9BKuaRoD7fI(;B!fev9VX-*nr4DufFU zR2j{IGMGaS4ixg~pGfy8K`PbhXyLCsCe(rYS7anKw0Rv61$==(R$8~U2mzof?K^8@zjrI|hIr*`;_$I*XzmC~mal`x)iuvLRfLn^xWNNgCQ zE%!?tm#k%#c$PoJw{x-kU#Q#?l0svrSoHLFfC8#Y*9@z6!)uLm;vwECoW}pktP=9!c+ZB#N&=HgA3-E zP}pO~Q%)JO9?Nx39#*lUCqZ(tDncK3w1#!bEKodk#8t&_lDTD{4#oCR2vgOhJu#Lj zOaxEN?6Tr5GYm=R2KfIqFf&HF0!dpNbxtD z%sh;?sLla>m1AnSb3G5mRdf{OvGw;*`vTu ziyW_JJEn_5do@D#u#G2;DmKJ6^z)ZAFE4|K@{v-CVr0W~0KSsaa9qCji+;T<6Zum!`9l5qQ;;PYAI(PgPapV3 z!{59R-WUEni21c=Z!Ta0<(8*U%meOp`A%CU{>_sjUzvNk5MO@L{wViNbthj|oM_ zz?j6!6wSRV5b?{Y_o{?bILL6dc5ga_Ticawe`UVSQ_(ELxnQ|z#=6J?l9v!E_?&CM zNiS`v@|FI6;u*hh?H0T5pZ)s$`sEW$)4;%TZ{m(^U_t&ZCd2htw`$b{|K4KXk-5B| zW&+)|Tg_sV2`P$7Fv_fW66z)RMl-lURIblG*LaYQM&Tk62}ySrFQgzl z3qDXure2sHk_C$lRz1R-Zw1LXeKhDZUfs^uVY~@@yf)Gc2x;eMU-={THC*H`UE*Z- z&w-v@BKIm(Ka#_&gBFA*kj{DTH9j7BH62jKN&-;n6amH3Q=pHf$ck;Jai`6vNvF{) zQ}9ohUWEnOZue(~Q)LIUtZ`_Zu1M}wZCLlV&@ZWM-IBcleGkHsQHT!9h{Xni3~YqO za8?%VAjE9=OB zWUJ-=R?7`l%MDb^O;F24EuYAKo(0oP8-xq@gu#$g25ED=qZmaOchiPosp4dL`wyoB zDjhsmyo@Z}g{ZClceK}$4}f)R2e6~3G&oq}FYC0Ih2kVLBKD7FBdy9)}a8)fT%xBDMXn~*g zxCDhU$|Z+XyP1nOEq@0e>uH3hUB*^be^K*&978X8#h6|pQ(5D9gr zy^Ic{CV|Jo2-4_DJdiM@V9FPC#FS`y`rJnFoki5BU+qIXOdiq}Ddq*b))wh~ufT^; z7fh_PkJM|TUvJF_H$(S*2S{9v(DjW3Svuh_==i@r&S7e?35-eWG!{Lqo_DW)s?DFE zV_D%jex7sRyp3H{uzPjcCKD1N`u}l5|ZQM7mD;R!8 zB^2){%!rnbp_rt}x7DTT>f73!4z6QY&kv`#M2H|hjE#1`Z<+oM0X)o^<=%_1jTV0& zU&uO{K9^-5biJgmyg9gEK)AdVt=$q(>FNkcKPqUx6RsPi?&5++aD+9Mj(F3=$%2jn zKcYSwViu2~|LNgqRE|I-N2Bh>Tb$wH-JSrvv9#7(1(GJNZYSWaj02bDqiX#pq&Pgq zxO?ghTwq1gj^;PAkt7>}V$v*kZ0QbgL=m0(=N3Vdv#aGT@L;-FoNKTvLPE>8(M+0H zLi>m2j%wY>jqJNG$Js+mh0)KWl>|fna<{yf8)4IMQd|$~W*dGbJQ0X8z*GL5ga+Afs!z+uA z{Px`*1@C_=>(k%=PU=n?kXrb$fZR9r$<%W%?fa$qr);@P^-tMimptcMw9KCon&=jr z?yQJ5-<*wYS4bUEEXW0YTYfyBFCp6PPZ*bsdcETb_N3(6 zgwaBK3_TuNYvi-@FCNgWJKG+b6f7|o@=f=r7G*ks$w(@18w_Y+Nlz8$xmcpuvZdRy zHQ%!3+pyiOPNwTRLT2UCJ^Vbr2qz{Cps2#LjXUR586#k!YCGDP`PpMG5O=bU!IjxX z=Z+&C;=s3K&>L_sdz|aqxdqQKkT_cPYWq`1p&RFs(*n;aGvhLo)fR5;_j_|5?Z(&h z-L9+3*VnDHfFo9v03D=zyRJX_Bs0JkE1k{t6z1oOwzuJfH)aIy?##+8S2DVL{qxfm z9lINklIwPa>fJAmKh)E_Y16N|eJmdV+q*u4MZ8_1TXsT#N)gZ1euu@f1(d#dJq#J( zoI7)G{czE)+_dh`w=?dbyAuH&Ho~=#K(yVvF}LE5YVs`(3W;*uGi?tdB_R(&w?EU6 zXck6Z+mFC6VwRr%wjVvbV8cEV4XF!`4GMeP3YZVm5YTm%Q$FzdS5XMw{a*RTit*cUQ_t)VL_@9A6H<# zHvQT^VS2~WOKCiQs1z-bMM3=X{4>5W5(VgvbE8TIS%5u>j(2YPm@Vn^{((4f&!^SQ z@!Dnt<2VU6!GU7UcFS=JHuLg}u1Aio;DkAbV;^kh&6gWEY+veo(d#3fCP#OX>w1F6 zWjS|knX}Jwp6FjHhz=1y)TgZ>E?7KjVpKW6hGw8iE--3pT` z1FnVyu1$DLt#TXU$73n4pN ze&x&+Qe>tP|3NHLw${i?t%c`EihaXOa*vP+8~}{^*s~+pvug=4b*DBXz^nYgwPlJz z|Kr#=Kr8w$+-Iu(Z+?;!Jt~4T3Mv_TM%M&XbN8<8tvfGX#c&)rfoBe!-gjqre=$Jd zTSq)pCZ64T%N_zRV+Mh1+G;&k8>jovv;EUj{F_q>?SL!U9csUvN#HH+X z!|a;FBJaAmJQea=n0Oi|Mrl%bY=U+u;&ssOZY;~2;@X@vIYxt8%jbtV;(LhW(mFC7 zZ3`&_gq zv?i@)ABnKNm4S< zVS=GHC42XB)WYM5)#jv--6I}?N}(kp$s3+`muw9;!V+cJ z_6P_^ubhcYa#Vw zRcwC4l@3YE>0{!iC6$Ls9k01p>FG@`%D4&R*=hWY#nC!D~!MAG1X~2~*A5>ZJXVhg%|tlTh=q^z)~}y?zEm zm6w@58aXqL6eXKpE3_n99(q9Zhb&%w$1xATX-jYSvQ3cYl-uebpCtzF`KpJcAE&M? z?H1?58QCg4B3ws{K`t#Mv8tIenMF4Dw`B^IgJ4q>mmsi2g)Ri}iO1&EObkNpc6w`j z&2hzFLGUoP7msM0+(GdD=K}WZ@x<7y;MyWbxc=hZ+-^{$t@G}*9RFDpF5BiXTg&oy z6RNd7lI3c-G?M9ezrU^Jqb6?eRy?9>PO`8)^=frB_969=R;@T|EUg$dZ!gm`-$xjy z$~=Y4BXYv2x}}x$2JV@U=Eo!8qZ%PAVH==?<0u)#BO_xQqQvE<#c8Saa)ywymgd~U zAU5hcnXd!V9lc80=zwATs~+0>VF4*?Hi#)bz9{7g0N&CbU3=f0;he#o-Uk^AD}%4) zLErU4QI7X_-?y-Bz_n@V9nm=W#cZCqCv-^js^AxTb6@P{qqyict!{mLvf9i$8qX$s zUTLAim_(_^U{UAv8hk(4ZxQaX1#kuRzbV+gi#voW>h&Cnu?{m)^`H zm-NXYO}|lhwtiaXnKDJU_IRFxptR3kN&gU!Z8+d*R|VFiAJ&}qoE_4ucq&}0??2A% zdmlSj0S8m9>xzthrg_GVT0!2;TofSoOSjX*kz9Z`5!ckC_k?LOKZ&;PddH1iVzv%} z8s|pmq#KS-D$&sMrPtIZWlvvy0RM2yu@%Le_th~zgVK1=C}w4fAZ9oBn)A8K@XD*K z)^7r`FL|KAkX0?=3o?Vr$a9~ORzfA2ha=vP_i#RacQ6G5waiF0GIh%=fopdtLL}&R z=+*MKez$q=lSgNYrhaYNEooDQaTum3hxRfenTO%qnc&x3bj@~5kH4lOmO0&yUYUlw z5bdF{rY^PfwVIkAbykre-oDwned{6S-%Xun(%Obyi>j*EvVPvnuV4Kd%|AJ~Hy-|0 zW7}3bT|xZWvbIG=`}K8zxo6J>H=_~Y?5@ANBW6jz6eDzdIY_?Vk=klys}rI`JO|>( zQNNVz9NHZVUlX|><9DfgU^Kl^?YWAg;*ZQu`6HlpL4u)da(JoX@r>m2y$4mb_Hpx~ zt$mK&%jdBVQE4#?i@|U$a*Gui^(&sR@Rd-bh$qU9a zXTBsQ$BT%CZgT#*=0=rJ?=h{vkgNToz`IsXi=X@HsUeC}N&su3*oGCC$(ffw=55m= zS`0(`o{KwOS%_iRhPVqHX0(4|hYfk+{5%acPrPuU1jv(FVFc3Y1JE@bL)qCrgU%82U(hZmI{^z!j`l0nfZ2~hxbay zq~A{~*RsLh%MTGJy8zX}B>SX0;o99<=JBaA!TP8V-3}*h) zzl=Ppzwa4+wCRvl|9ci^@*vW3g7j>V=HNV2oqGlAJ-ZHhn9YIhigF7cPm*;L$#XVR zIJ=c@@o|1?X?VPTbr)XE_40hJz&VOhRv+@#EMyb76=&G3pI;Yzn4S_i zw2NhOn#0KV=eK=&wmOpz(M{P-ZfIy?emhDHmaXbPRZE`H@zFlO@qP4JedfFBYRV3; zluM8sB&45rwB%}5pL@T*FOqcnbZ+sWIX>okTd1y723yPf;>~wG_p!#(?Gm)$x-JCB zpgYuzjyeeVV{=!MnO0IuxLf62@mzGDw5_)n%i`5R+!WDrFxDl$kBj=;8=%N?ObN=0a^w%Z&JlX#EXmFY-9T$?zXiHckG-#L=QQE9f%#AfcY+$ zBl(A>4Pn(jf(}c^ZAvlYJXOiNOpP^;F9mTIQ(ZO7!5E^!d`C8iI?w7n!q;tsAqZ86 zDVQQ>GYvf&q+*810^Z(smupPkE<0nT!Q2(-N{%DR2+cZIB1wjH`ODIb}w$l~#U;zD+xsHdoPGCOq2TW80*e_$|%S z?sG%_9?W8YxFDr8AbDombA2&i#Z9ODow*ym+)L6plLOK7_^)HT_BJ5^l;9i;2h z%2qu=&xz&ezuj2LVXDO0^I&ytDn|NaSyYkoy2GxSKcAP)Gz`Bg!JEF<(27=Z-_I+} z?VFz{+Sz$>a_cc<(-H#-9?@k{-8574Ho5gW+8ac{Nv$8cw0XYrx~1-O__0Ru=JS_K zxS$h_p-mN5%!sdjir7+$pzs?13v-+39WycKm@jU76b>qpM-89@B|iDnl%N|ol5!=U zCIqB+ppm^5%5vQ8UMf~JL-Xed9o5qBKs&@RMSJA5edTZc^KH}67u~)n_s>C-O@iHJ z<0oaO>$xrxW(smPQ_*%s)85G4FdSzpe1gd9ZNdggBVy`(^;|6s!cMxbhNJhVlkMKj zb2x2eF~V>WYd5+=2ZL8@W8t&bhl6n* zkR~~cx`IJ-&zV{7-`^U94L{}O^b^u+2eL-fdG3p{Q_ikCausXzvr0slP-t>_OL49e za9MaeX1tr8BKiq48F(UzJZI_zmACSBg4%SQZTD7`R31EtXQdb5))VPYvsWGEg^ZT_ z7?;O_jKef9@sU}UJBD5Y6ZNs) z0kd}_Hn8(LeZp4$1mZdqu5dG20Y$p9CSqheSQa_3n1VK9!mvi_3i5`SMX_K^HQGUK zWHt--tV~+7nt@b7Xv*Vj+4vyQB#yS|c~)0kKO zaFmL#`E%UpPSci;v6%Gj>9tFwOU94G!Y31d)giP3u!IX-7&`n}JyGD&Iy=a5XT zrVaGze?$aN9}8S*nEuH|c}vc}fiFWRa?oDbT>9(!^<+eRx&M8fw8u|VA#02E zzs{H2_a;x8ZcS({m919D>Nc1AVY6*GdGOnq+mE9gcUgx*PngG%xd>WL`87sH$ z?Hz;l%Nv#t!F=;$)(m*U1Hcv6!>*^#rmuHaYc58$Lp-ws|F75ui3kYOQiuq}^$Wg@ z?bGbbT?=r%L^3gi#F`8>OW&=E{D)nT^5v>|qzFTx>gY7lqxrmg%sna~T@ftY#B+7# zy=m{uA#?iLpIQ~e%l=&lgqd+$P=5Pejr@)yhNsVMItt@tpN(mFYt29hatHR`-zelI zy{O+WqPClPl)g8XcI6n|1ebS=N()E&4zHO)I0CW;lEHiL-mFg}RGkL#&=hEJ= z_x7;Ey9XxmxL8Q!vRD!W#_BL_x^;}XQX@*TWM1T%fGmaYKC@)qj|YaAurwn;*>4uWpA}34jwqyuZ^TC_tsHPL{Z-z?Upe7m*j%H{~Z~ivYVYT zi<+Xb35$}syYa_=+=IL=Q?}X*2?Z0 z9pM<)7=Nq;37P&WU3$Gb>o9*hTT}XZLvD&k>deHyrg-hv1o3d4v?bSy;tB7oHaN77 zFkjj%Ggy+2I2dCn%7z)<%rppYiXbfRu?5TEM5s#wBAyi(-NkF}Ey0Qmc*Bu&N!cJZ zpm@z?9GE^J{8tO!OK~?4{BFK!i4A$jx*VY9i78z!4O*A>Y^eWiw2Jjg;sr^Z%{iO33YyCnI9u5AobGJFz zSt$I3r@IV{uDLO4Fwtqyu?W)breYU0)k03Nlv$78cTSmQ27o6wjf<#HWA!@qQq@s=4cmVn#M7lyWR${-TLOv z1JDC_hz&O14xgUybpR6*1E_9&75FTDQsDOqW*meW#%>Pwg%mU16xi$mp6Xhzp1|16 z#(T&XcJ1lZ%ee#aA^N_q(H>?+LCcz2_eBqQqQS~lxm-YCoTV+I3k*2$%ExFnpWWIk z3!j8Ncf2@%1gBI*NO>;*D?-zTUdzC@0HDwD#@2;y1dYrHjgp`f?JIrOB5|K>YX{F- zptlX3pt9gus&|d)g<{Cou5pAaKAp~uTC1}xTUU$>>oCo$T5FTc#at3?LU&@Pyz9H<#ZpaK7{kJ-}F0EuNJa z9E%PWcQ9u*3Y=_bDx_O-OXTE2qF8ewoI;h1&5oT167!E!2Rda2?pC4m5m}mewezZj zBubkF24f!KO-U?!m25+TG=QtQp{$3buUsFm?xaRn8Cgr!?1~L?H6m;6V3TnpMpPIN z%NU*CSxlLPjb1p{DBEhuGYToyM0T{7qi9u{xFuD|7{NE_fz`tkoADXu9f#>70AL2>O`Tnd<+1=7wE;sPM?K&$M1mhL)3+6t4#nNoNGfL?7d^KcH?(6PqkxQ!HE%e-Qo7$6{>YbJx>(Ur}Lc}0ullm_E2Ug}w! zM19yc`Vf_42ePEHLoj`^py6S^@~7l+@BWXMteu$bakN9kX0Yr119>v9~SJd+_6B+2`AarLCR2hHw#t+*_N6GW@b6VGw7-HEB3X zgtzqeLY~6Y@1#;oE6t)(3=8!F=4#`~&k7(j^;&AN;T$oAUzU8G9$E5SR!t)?ps|JyHeL*L!Q9n7tHn7god{ z&4Ij^(Ln_bM+yRO&O&#+E)rE@@-a#+5*GUA4L~8E6YkPqe^#@cm`-HVh(I4f#5#9{ ztAoq9`4+?LHdflEEkMvE$m4ixtDJ{)GHbYn@MVW#P*m-ZZ+lg&qHhs=yn%)U0z;58sWlQ)4Ca@@7q% zI_X;3v|`BJ(ZurRcry;^D?gmmchcfgB4@24^czxZ4E|HaBfWlou0?_965HjACH_=r z&uaVCi$eDdes4w9xr=O#Oa4)<^ix@eS&minUH4?!Wkz2OHGWdHBh%tq%Pc2;Q&HtN z{#A7e2xsors`*y4YoTktYUm;64ODx))WLawTp z1YLw%5I|Qyo%}NU=f1AG889(s(#(q-O@ZdJm{ER7v{)%0NhiZ{i&k7|2hSv*=2dHx zm8Z_`T34-A78VRA=#=nHf-JofE3cIQHlvqlPB?`unnba;bl`1Hnm?Lv_WHA#_>IS`6%vjr3TKT`KD=_d`;aYZ(JJ`dY7u)&^j*ArXaSm zKc3d@Wm--uzWxdtxn9j_cU<=aA)U6UW^O-{DXo{BHGv{d1peH5diBqw{yhuSpn8%m zYzGoI&l#VDp@Cm(so(Y-?ligTI?RVsN%J)*P7zS zyNG(-d9UA!p=ouT9ZoEtJuS&`Ham;IwDo1&5SRC9fu^|UNY%?#vnLkr77aR1dC8qn zh@Qv;-T8?St+Y{75kLSN5?<27c24w5X2jXKT;RDuNn#anz@}tce0yTE1eC+(C^uuc z&RbrO9;IJlht+c^&4a!U4`Q(;QRrFV{R{6@MJ#nA!Gsx=KmP?yYCC0D-eaV%COrp# zyASx(Im+*i(pZ2q=f~o_C0Me!#A}W$PL& z@yU~4>wTnq`=p>bu2aqu7m(BoQ3ddhzGT&TJL|PXw}I!hg6Y?`Fu+yUT9)W;o}%KS zQ`WAQOb{2CuUaJH@StW5sy23K`=i1m<7y-8E zU#tmv`O{h)w!Q zQg9sfZAJpz*vL=2pVi<{^kEo7gK9qE_vfjhO6&141{79vCV_|4u!arc%L8X8$jkJ8 zp>{5*;glJol?S0!lg)KCtC6Q07+Qr!RU_4R<1e758%kS+ShHek8fqQ~iY|}|=t&(1 zYgcn17^*&Fco?`G`?Xbz+=AB@5T7>nNJ3#*;Slu+g10b9!h7sEqkA`b-%D-6k%So9 zF-G^(5k%tvv1R){WJD_giN-pcc!^E77&8J;*s%9EJ+*v??U0ze!Hu}8+ds6T8SL;X z`<)sQM!^=iHeEj(VMa|KO;*B|febc1q!MWj&)zE$EkHTx3Y<~7MhuK?3PE2)Hlpow z+P)2}NU)OY`=1YwcllEhR_3O(P9KC$OPtK5>f zRN+|Q5o9iC3uS(kLhFED9orItLgb7DLVna_U#Ni*D?0&UB&s9=RX}XlfZqQvs?W(? z^@xRTXvP zaY&L8aRr3p5WW!;@DGR5K*GvSC=OLOEwm!i?O>q+YbEp_3MC!pR)an40H>Xqjl>vR z-YXGL=kLh6dR#x`vmwM7l8}Mb1cOb_akDz(U5QvW_#*pjUCFApj9WvK&ym+U;aY>| z*|5$wtXsnxSdqxLyjmmf&S8XmXzo9dZ!395v0U)AcdFi#t#1*_^tq(?XP?8S!8{TA zZ16n$>s|=Fg4geHd^WQwEeN>&JHS+r0j>YfaZ|3OP5d8l_3?_YPd0dpP!7z#_)d>@5YTAdkI zf5MlDEs2Y~V5|{{E-p(r6qb6DZ+Wf?ttI+!9FNI+92Kq#Js(W2p-ul!ZiIH;g5o)4 zvV&F!7aAJ6B444S{1>92^BCR1#e+TBNUH-^E9+!^WOJ2dX;{GA4OopN`WH8`+94)0 z)zR+OkU(@u=olpI6cTO&@$-fR=s=>{ zQ_!b#{7TuFO!^|BxYVN_@mpj?F##W^02~ZuM}pj{G4VS+Q^-*afQ;cmH6QSM*wv7w z^}aJk;nfHxf$h~`UTTn4x`)*8EDfAcJ1x{;kMv2)gFrRR+_sS`SHGc()U5_k|*&G zuwz9B$MTYd=o3VD0(lXnHqA&PHhHo7x8X7Zr-AgceRRBNrrR`lKVWf7%sWZj-PzbpL`es|Uput!m?QYozK0 zHT9O0Oee7`ApRVGtxo_7#hk^Oy9)~8{^EOr>n00-2C>+V4S@AhE zn-#ue%SFsHMAc_Q?m4LA0^^m5G61Xn12hRd0!~8DC0MCEvA`wzfh_-`KCL7g)TyCW zBUTN(!bn=E^99FteKWddX(m*F{`quN;r|@>6Z<3J9|GPep}z3JWQJ7{5C(0X%>!bA z`TIdp;r&oowvP0bApR#DVqyeMIAKs}2vp&*U9`s6ERO(%$UhQLX;=*ddg5#r1clH* zAxssZ&OzA1pAfP69MRzd#kc$b%{d(G_P42mD7d%KuqZH$b7>L2H>{ zbvIE@5{)Y0zZt_$@BoGJJ!Q&d-#^%O1G=D9D2)H9TgS#u0Nwd7!I~cx+ZAf?4|f0J z6mC8gcK1A4i_NA4S$xnzK7%)xv&-$iOLO4HRR7v|2`+pke zHY-ow2fV$WtV~JI5LTW1qN&S+Kbb@)orKYzAQYNJ)1HJ~og{8!6?)9WAcBOLvvL*n z)TLl?=y8ukrm`}abdjWxUKuivgt@Wu?De#&L3fE#Fq+M+9?j;d!Aa`@8G{R}KdJPx zs}T+Bt3&f<4ZBL$9|GT3HMBBA((*8_YVNu2W;Ki>L)d={RyOXgqJIlk6sxd`e+yP( ztB8|oA?MDI$B@&t{aM)sQUOC%)IR0~G!H$whTKotQ|gam{HMA)rXR3dJnDk@4Ys8taXQHh#zhj2^Sib||j zx<#;5t59!IDUiD;;#R0qMaiZ0N;RogQ$;vqu0(5h`|a=i&Ueo9{Q5`dla;KMmBk!$ zyyJb}F`dQ6m#JBVLVvcaKtZCoE7hC>1pr#hw2&uL*zQSE0Iw0Oz#c_3#REWVwaiNN zFV?`*?>`pd>r}~UWtZ7j$7PE}UN=?C(|C(SzGT&$fs*}fyDa%ekx#BFX`u81+v)SG z8*_>xJNhj+gxG&5PyhIqp~0+s?Lan-`|~xUHm4KW>$L z1IGtPbk0^SXe&KSvVHpHzLPI?adDkIlreGK%Bwoan01D6=~~E`XAO>n4a<)E>2Y}q zSIC%mPTn)TDI3(=jL6ar-lM9)iH9H_V5My+yQcVxeu^~3YZ1UR2b46%LhRkbyYXkE z>1uoz&6FmKV|k2uZ+eQJ@i4dAHr+r#d3xb;Rx0PWc%^fS<90e7RzqBQ_r_Ag(4+r!zId(*}Hz3ZTFdGF<csFZK@MG1@vcJ0Q7TtymGq2;`yTWd`0(MHn{zaD_ta*0@|HRhoP3Lw` zuNT}SMujbfpRpxo!>r(j{U}6H&aSBD!jEe~C%yMGoZAtyMo=2Cvp;v|#TfD#hlFQU z!K*h%%=f(W`vZCVLq-qnzIJ7@@!iaW`bV;xzba#TPG9T(A%Ap9cCp)|#kc*=eDEpn z#e)I?!nD;{4~mXI5FC6^diOzb`vabJlVZBiz4u&K&GyKdYdWiiwh>JC?#dsCGu%55 z2rY6TT&uPbmw(eT^NjdLzvFGj_^q8i z`0AA{fM}oeTkK!}qTRvt8>#|C>)1J-P>wRF_@DSnDY5&j>SvGs>tOXtQUa)rV7tE` ztm8e@jI^Rew*PU7o5;RSJAa^HkttdqvvFAp{6OJt7DVgMBAZ-w(g5Fv<@ZGXhJ$xf ze^{;X|MYmGR&VJ$>)Agudy15L`-2j|wtkwAV{6vJw#_@@cpkbbs}zYGt8C4dwz3Lg z0a@pGSFu7^;-vGvD}QYm+o8(gR@UfkT-Sy7~i9L_s5gNiIRy5(Qt$WRxi(vLI;02zk0J<6Vd{PD#bb zFj1Z5b2CnnZlxxCcV=z3Kdciavj?E&GsP$h(AYm0kFjr#cl(~Socbn@-957eN5|{b20&7MK$e)I_qrEql8;|-})>c zf9en}=F6EehiuM&8FBufQ_nXzZU1M`cINu$v(l#%r!`4`5qd^2ws#loBRbuagb3YE z(zkXOMw7@0(Rw^%l0r(X0MRNAK{!JCtU#5f;@ecSsf=m%onJ#(GTojlKTq{JN_RNM zztS?{hB7AA<1yVLvy$KH93{SoFF{lfEitq7n^uc6(lhlSOV2D(#q{v&Y|*OMP5ra;TY>PN4-3)_%X}kiDIM3imVA7s9wQ_ zBJ*bv?xku`Y>5pk?1}UZXMBx{Uai1a%PFYHq#TssK23UXgyegrcEz)xdg(KcS(pYv zT8KyKV_`uB$0A!Zt&KmAWAjuqv#rKSHz7`(aP`f$_6=8J{3~tKZwYS&6$h_gFHCOAf0%xLS5#Ae1>=y= z3x;*K&=9;D4IFeZtBK!Ce^r-^hHyB6zs+*)=&riyp>GmhadOLu->8qSi(JDRsh_4? z`eeG8>d@P2jWgj}Yrm}8wV0|rgeVb@y5=U#z3 zZP&c2iwW2=F9SQcj=5f_3D~lZd4AvBrri~c^+H-xQuC+bZ~}a?vd+F~cQd^bzVZFj zpC9J0W1`b5yOw#uH|{i@{_meWBn%12>Y~lxH#@MhxH+pto#%P*l*_)6fXaCpw}hs_ ztEsGOnFPLJ=X(cz8}lnPG?DiYL(;mbJJEAb4#b}ONPrOCvb`hk!YNXz&oJvg=c#>J zy>olTB3*~y53!tHaW(ndaf6)?4DNH}pW?ll4EyR*TVkj}e3s;^P)-t##W5Jv!Y*QP zpz;%;SFdV@A+$;UlIYWa`G;!}RU0Ds3I_E*nlA6W=*8 z)wN2^Lj=;i9S`Y85s@qYHq{Xkx#fFW!k36^TBaTAg0V^ZNbb zm1dOjHfkE7C|y-YapjqCagSI}aZk|V3A|dCd0r`w?Uf|%qPVTq+8+?4L*ZJQqhFC$ zV#o6BQI;AULd9}avc?QMLf27R;ZfGK0`y zud<3Qf6aynx8T@Izk5Eu?CgsMgouI4jn{a_^6%?H4l1h*Zd*;h=qR_>VgEByna}H>kSnu{z>8R6KXHcCf$LxLou5q zrqYeS#34o6NAyY5zxPQ`>LYZ2Vk)?l`dZXh_!l2q*Pcf|20olYY^2V(-tj!_T+&2z zDtaH`B}Mk363$5T0IZKPWq$JJcTiZ%3r7R;d=CHb^uYt zwC*n7M~qk_J|=WH$#mrUSb+w4}C%`@4nuA1j)4Z5T;A#K0G~nl{6}EV`JGm zCam`mVQc5_>I>ka`3C6%{-~DDNz~ele-49D6b2iqrojQX8$};P(J2z7w)X}(dNrF= zLG|wKcz;Nd?w%@7w647f^QZ`7!xRlDHZmI7XtjsfKp93802vO2Pu9GZugJpDIgWoL zZ+F=@8$}g_NPt)HDwLacRxr-*gFMo_9E-RL2Fi_aa6LpEyMnRlixKo2i}sB)?(d?Z zRKm4QU%zv9AeIEPn&7?p`wpO#2wAkLY+gpuzCQHD^Y}3i0PQm=)Mq!twi_EVS|~w z>?4%@5>nk0wZ;?}Qo6bYIND9AzEf!*AFE#6>a|4am5SRy-+24E=h6S;>^H>!tR?J) zbi@$t*jWgeRy%&!yhHX+ial?~iTcwq<_Vg~0BTtw0;%5Mmeg56u?^C?9;obP#q@OU zGeq`CexTUg*Tf#Ev13g@N~UFxP&BimcNIM0vf0yFfKW0$S*Y2)YWM+(ZW{N^!I2taqFVxb--!LjwK z4g;ZH9pC=17IwPEj>|v6E%$P?7CC1S3zI(D1#9ghSZk%5BkoWED9(n({*MF19hyzn zy;n|=u6jL8H{bgXhH^|W)HYR8m({c%L8Xz#-DvP?N?4b+9s=vo!yPXBV4fMnys~TU zEnyRy^yYi9Xk&an>B#PR8L#T1nsyhnvn;V(U>U$p)bBE8Nn^JAW9~Dp1iz=p>7fw& zkOD96RQ;IfopK2!nm_&sR~zl4vFNrS%^3$ZO!#4ex?z6Lk7%(lEgkIxDuN+A*9Z3Yz_;TSD*BDH)TkrXIBEHtlWPN7x+CEH&0RJB9s-ph>X zF872~C^;syI?0TJR7m@snH}>?Ym+)2(X&N&^s_?B0)X_9>`JvxWJZTnxdG`TsZ6z+ z%3M4=_9!#*9W!h5Sgq_I^O!kn*wUNnpINz}B|1vFx8HmPb82SQMqqrTf_}3Z%%Gvl zl`Yp?4i=n0D>y>C}ZN4A5zBiRJ382j!rtoH9^H9l=`#n1qwFBy+fj> zI0vaR4wR&@$0aG(QE+QjA;VtxRhb8PIc&2Y<;SA&bt*<$1mPKO>N*n`3gXv(r*y@3>~Q0!6HAA6PLZz#>JM~=!m|O299NomK0kNq?>+F za*|_xRU6$_5D#@_`BGi@$n-DO^kI)-&lB3nw!#k0f?bh5Te;jl_5tBv{K6;b* zKNw;+O#%@2@7IQJvQ2l?{tvGWr(gC@2><`t?PpWI{j10M$A|m&)lWMc=+?jf)gu=F z81-^s_049jrw=^S@kNJZkaNH@P-Pcg7Q})cXzA?WK!IF>|CsyakgPQeDN? zZLH?m65|3TB|=LaGn`r(OpI=l>=s(5XfGHX+j;9qGn=HYZ0s z&saEA_#Gfld0fBWYxNjFoa(=UK&ek0Hs`7TPAHVJT?H}{#Y?G99UiCD&OT63%XUeU z2UC2GsO@7bPUhd9#%u>0=nhx41I4d zOX{SQ|IuQA#rrQ8cm6-VeTRsz{_62KtU2BF6z}Nx7f%j;tBm6 zzWB+z`1^}~f+F1luEii=QlADowYspC%Njb(SM#$O^DkzUtI=>#OPj`xEzcQG~o7k8-TSnEkC}oiWc1yJc(q z3^VSES8%+aYG$?7ywsVMb-nT!;n(Q&1!XqBE;X3ft5UdSSM`3w9_g<_DsK{t(^sI9 z3Q?6%;F&l|jB`PxA;zn`cTi26>;2(d#FhdX62or@D3u!lDn^VThy?ryHcStNp%yp> zC=8RO&%?|T4argrf}!FM!(~5)G$+1=iinNaNVUeb0NU+N>4LI~{@DXWR3bolX^&SR z*GQaT<*0pNG2#emj!oxxN~O^|XE&*hg&Y)lU+)DXF?cm18L^rTxW?ub;1ip6V+Who zOZ`fX)KKHw0U)0xx|L+$iy8^`x&EI*k%!Tk?*M6EKqdMHAe`R9Qxi)4w_zgCuK=E1 zfT4ot`rZJnD=?k#-jB3R-ank$6$$Wge7kHK5Jky=QzJ7)_Zvg`-aTxG_|pKjgI59K z4y+8$0YWH%J1+wvbq->_COaz51!sHNGyLs$94?bKXA!mh;X9+h=GP`|`ib_n_cDHE zHqDibYoK$h`6N<|qB9kuQBJ`-;b!L=$JU*PLq|ixdo-XNfHN8XnZ;LHgQFCI{q`%EiJ67pv`l-UOzJngP2Vw8ey7E5D`*%N z@$x4I&ll2F{kYe(?4hc9?HEFNtu7Js=j0Xov+#~`H3iH$a|wJL#H0KK3;c4P6rUjN zCkGfeVK>_82P%%TLVFY^*zP^zQi|VwwRu`)727#fyvHytulO=@%{|rGK&7YKk;dP^ z#$|Q>Dsn!nc1LoC6OuFRay41tnPbKKcBUZ0<-^#L1l=TGC6i;mkja@e?0i-28C!K< zAHGUv$FY?r4rjL&pVdtnsqRokwh1~k4uCf`8|`}|s{1ZLNCM$9#!pjk7@MxmF-eRN zjHBXw{Z9qYvx(>UA8^+tY4!>c6G~Z1+jI9{AA8{8N2#9kID|u+1LJ1_B9!WKz z>5BA$i_;^4-n%1N_*)wA_SojZ^vX3s;l$>LThY^69OeNp=B*2oGJ(=1~f_f zgw})NT++05-b3Oa)%|;&FG)f7Bm>7UrGIlz+y?29X% zFK7vllHP-gk1;iqzp>?;$GWobw;EmKC114K{U7DV6D;#2**uEp5!ELL%6i$>Ju(!8 zifD=l7;={Wl)c15^-)?$727sco(*8M>@wR5EI9_ByqcqIhvV`s|Ai@Mq+kcz?}-w5 za@6$Lq69tOSBc}eEL5+HEncf998~)0%~x%XzI$rBEhapi&|Edxt&%>*`)-rY$l_G+ z>R(L*=0z7eA~4xol%A~7k>bQh4EFWfc&Pq5>kQ-4o#w*qkOji*z;#TUhjVqvIPxhCuoDS(Qt@@|8-7O z{Wm*-%Ir!GhfE^0T{9nOevsAP4I=^Y%4Hv|2`HLxcY~f`yQXMgvXO#(H{>Hi61(Ot zp)VpNi_i%$@h!1?GwB&6VIXVtDv$u;n(`&e$(S6{h;s5NQsZ#`^xL`5M{?Ao`kbo= zOOJi>(Z##F_w3xcbM~YiPZuqT+WGBE_bK7w{wIgNBmWQ)@%4$B`E`%Cz8N|HMP1F+ z-?(>gKK^z4-4jaoq@AY3i&$FFG%*3D$qD#Wcm)~PWgp~2lz5W^-+of+L;f33KyVX4 z(EyUbsGU<#a=#^qQ>4!)FHU^)9>4S_#<;h^6=E*5UA*i|Cq&H74&PY67m4Y0@6DCNr7yAlL*hmGD3_V&7AmpSXudwfBXHLdD^U7Rb@GAJ0~Z@pUu%@ zP<69ixIHl}?!b1an27G}B}l|jSmK?u3@$)h;)M3<3cVY(q6^7~OG#Gkh0P?lCh<+( z7HU-h3D?fgrpHigJc<5mLm&-L;5sGJpsJL& z;@fK)TgK&;|I{))uV8gc$X;bliwm;ucwS&^8MaK{y+N1UesBHaV`cSphhf(ZjG4oP z4d8?2Z)vrS>U`Bd)|Z1cS@tTD|?x?Stpl^rDeAvxHJ29;YvTUe)P?wulF_jg0ToTD~C97l79)HZa z^F1m#HIAl|^JkIM+mh2)Y$5UkGf!-_Qb!p9W@pktNiQ%vn&{XX58cF7lFJ5PL_b|un6b!4(Cgw$$vArv`-J^1G0mB zaEH1Y1iDQkgLO@rUkpa{{h3QOL0s*11vhLimZLnWGj^SyO(HFT>3Ir~_DDzk@6VoK zI=kEU3rGrC>vW^YuWWZsXg0f&DnkZkwpdWR*DlmojUDBmQ;;pDPuh+ypa@jo6+ zci(jtyB8P!;m~FzJd}j_Bx+r{5lb0|w7=2?pzom&8@S$qvaWaU71^{miIC?`fjrog z+}6jU+_&Zx_=nx0dO!ODxRh1N$3L0&M^?6UL3T=8A0P+f+u>(~BVbiTx97?`npN-~ zU;A%J_&pS3qI8+TtHNP1d|%i1YGU%UI_%LgmmenMjHp}7I=3MA32VCp9@miZrv7Ny zk~`<0IV`=Sno?cJCIN3s!TZ%}rwZ{Hq7Bm?1vpC!rxtD_IW#GD3&*8PPXYNO$Yxkm zdD-;s-9?`IjosDzbUxkSIG?&k87s8QVPtjlo~kdTjz{UV#E(e|DGEy_Q|v~5UcV@$ z;wh6IQV1cqR}yY8+bgd$OxUX&mkLB`003M~U8==VZBVL1y!=(F$79-pVM4rgd8+qg zIy1A}p~d-(tf}7;m7IkeTO-d%q6}7Nlw14FW@!FCJnjN5XsCK+D|pZE_B-qVff3rY z!t#pW=r<4wX6aUdi%vI#P%YK1CGh>(6hY@AidB$$HlbL{4iQLgA-8H@QrwQHLx#=P zsumjjdt^U|ygXE4CV3+fEITr}!8=r*4melh2F0hwE4Cc8#SuZiDh65Tre<|s0eJ)P zu3!ht(+LG2x~&4^3-Ym`?9FXXNv`Vy*(4uK zDvj$=F{TUP1~2`3uci?UKIivUHesHc*-aeVRLx#d0DSHFePu^L&QJb_Ab=}fOy=zK zS%^_b2tA+Q2WWELdI%6y)WX+-*0<)6u8=t_iw9Ep;LgyBKU z(0!T|PK+x;AK8zpMS$XH08#Sc=Iy&hjT}^kLJi!tEV(WjoH=U|*55sEB|wk&%F70? zap{tqU->i~NrHv#n!r2hjJWtW`H3s6SFCeC=RIPbb2u&$;Vsf7sd${0mRZfylgt8T zvxP3{3P7;wVppMkEn^ecErq_F>yV;-EVS-5a*|=2asr1zl zbt+}5TfBIEDo{3FsW=EYL-Y+r48$M(v&;eqAbPeg9l5_AmsxqGCHhR~-u`hbnBFF% zd6+J7sQinTh^^w|2Dh!!C;b-SUNvcoCtAV1n$7wkuWC^J0ik*pYqFzMO)-B@QKXoG zs!vvprhQSJ!kUs-gQ<#sx`bidwVIG&&$U{@fvRUZkKe_`e0ihDK41D1rYk~?smmR< zxT%RrtMO*}XGyMztj=np1_U!$K~E%iL^dxqab%Ux(wADZ*m5igvG}WpVp9_w%U=t= z8tF5R8D^TxSG%=U-qgk1?c8r5-<90P@7b_N zgqaL1?+t2Jk3(Dr8A{NJIQ2XK%e$|6Yo;-N>Hppv&U-}wCRvSFDzxtX1_?qLBP~L+e{m;XXEW;I!f;G

{sNFEjva?~pfflZx|3{$ilgx2XwGI3fv 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 OTtM%!HNXD5fd2yawnygx literal 0 HcmV?d00001 diff --git a/doc/obj_spec.pdf b/doc/obj_spec.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d9a6ada48d327ea5dc039e5ddf5d047b82a93939 GIT binary patch literal 492683 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

hS+7ILI+GajfL_|v=AWYk@S>MHq`ye93 zwkIG1I#(S*#%sIz&;t2X0u*6FLm^hwR(qyo$g&WaIc|beBmt2Y&|$oouEvh{zV@|G z_gd^MO~j?fr){qQyYr|)pTrAW8=}ZxfIF32r5e3bV|~T^fq8kY^@0c*Ajn535D7xT zxPQ4^p+eiwxRx;J-E{PI<5m!It>0`!FLGrz6Jo<=C_2aT)3hf01FP)@ef|va{!cLd zEr4a_`1=(VM)rTGuk8P-zBVdJ$E^Os(wl1Jyr5vA+s`<7N9|J2GNs0`I7x#q5QGT3 zeC?lIhR8tUP~RmJ)M|%qH@VlCcmVRhq;6HY=zup__-yjIP)I$Vbe6C_(KIahj*8>?wMq_sAq3ZgB{Rq*)@&=*LL z!j)*1{j`OnGpEs_L6dq6{4OWjZ|BADl45#Wzo9UW@V9F8vxh;iB&nT=h8{Gq+SeOC z)lQwyGBfCtJ?)!tWWC+{woKY^*zlxQb|=~$R}(*d0O#4T1^kJl-|+a|6S8ysEyG~{ z&*bob<^ml5>XC>frT@$Yz>aer0GWs%x{Ch8Ns3O?{kMXNnTJ>HMyMPT=Ow5Fv8$OY zn6Z*L1TBGf`Pt6>(dQ5+hI9!wcDgm~x|EXIC2F ztM#q*#V*Pg0S8?k!53pw%qB}K>b3e?Q11nlG53qq=s@me2%{tBCT6gj-unJOK8=N; zdXY~m*Ci(qp~z6nGE52d!^1&&ldX>S`^^Y%v*3CyMTyGk!$~{zVX0Ku;+Xzn!#r$`ymg!6;RU(2gbaKI`oddCptB_qe5reMb3*}DJd zz#uANJUX2oCHToF+*h>-E0QiX)|kjyC8;c0%|x(gG&WeWrGUwH%MgeevvC0e)6pjT z^GkNdU)Y##FeTxtXWBnbZ>|_1)$gs>z&?_AJWrz@4L29BVu_D;-*OdAe{iFeY3g6x zd$?@zb`y)18V(;;irb%96MLTd(b`S=%wGXq>5nLhuYu_&7YssH-e~pt9a7@Cg}4$V zMo_5MKHiHl_T6Ap(Xz6;dJSo1M#pLf_JU`U+Qs=JxJuSjbG7X1Qi%c+Q9gl?=6Ia^ zfkFJtH9j<8B(zmBxLt97J?5x^?v(PY{+{b(X$du{H7%9fqQFE8#3t!fTlL0pC0pPIM<`TOMbQjnzYFF69vI&x%uA^tQ>i z3-+#@=IWm_8j0q>oV?Z$7LNBUujs?~q};`}WEz`cXnP#!&&-sUBz(wZXcQ=zWOmVk zJ>jC!5`f}|3P9vl)qq=|RXn{5iRa|?wih}kxyK|3oOA06AO78WMF0yTTD0Wunz_Z{ zK0^_M%*{n!c&NVjG^2++E9<1=o^>5$vL=fUwo%SYF&huNnJGm;P!?UqaYto`+F;Cu ze*SRGefWWpFnRcWE@u)dy-@ZDhBy_OD+SDW{c2P;m`jaDS|2I;nziV0zYqpk zt8q#HY8BB86T0T1JpEowx?TTY>Vr8=I zL&Z;sU*wqO4|>OtpK5OjIG@Y9v3+@Kt3Xg`f1rZtx?eUp3R&Cbc$MoxH&~hJ4s$5P zmxX1&U^fN(D)R6qhWM_l(4fFL%Ri*DcGc2irbwr%_Xl6xSc$UpN!t(k4K_BvnwiX!K7+D@@ zP}ITO0xU-ta-nL&c9v+nIX+uYHKDOc0^-zb#YwuEAR;?%t1F@bl6#I?2kR3A$3|i+ zBbKtfb~yTcqgGp=7a$5=X8EnCk6(dZa%@YY4O7vsiT=nkehwET3O@?4VWK2NuTUZU z3q~Hvxbrs$&sxlrx>SM`N}u%BnAjNw?Ttn$r5a=XO~%d^#ohTq0^jpgdfZ%#>uS%k zhWnbnt6w1sT6I2 z_9BA>7AV6O4Vi#bSYoB|kc&zuYwTl2WU1%TDsg^+`uX=sixU8smxY&nmi3tDC3LS) z5e!uC1ZP4#y{xXWVqb}tPGo0Y!n2;dmTlAFii@!6@5$9*Q0VqFg8L{~q&D0HR4TDUp3rI~0;>5PUU?qPz362vgJy`9Do`c$Cz}C}aCgyw&#^37n_W(L6y_+I2Lpi% z__6#1Xn8q-=!Si~Z_m?+UgyP^jEl&V`!%ZM2fjYT0T$Hy8E~*(Mhv1`%&|35{Px<4ih)BeN*YI%RtF(6T9xrnwA(c z{7ca-J=fz6d8bcgj}O3&SCP>_VfGt6f5D7}@xL(pTMhC*Fk}2zNBtzZahtwhS2u4| zhl_HM^**ujR09|FcA%Y@AfyYu=Ipzp3mEVGfI`b8l7h+VU7}L^+G0abz4a)eQW1lpV zwS-LzPMt>cq-Ij5X`7s1&c_hRsOX=YLBEjpfh3x)Yro5OOCfHkkX45_^)>_I%Y2@n z{liX{FakB`7E$Xd%>H-f|5YeT)c@9{7Rq$*>kbhM8Rc@3 z`$Om<%k&XFpk?vbGcG1KYda;1x{jK=NuRq(Lw7(56tUOLY~zbgH@ckVLtJB6_*U0X zBPXFEuf3=#C|8P)Bzmyh)jQwHENhM)!^Y;X)ZX@LU+K^z-dC7P(I~P;ma;x`@BxtH zUVi=Iah4IEV}i7h_DJFo%Axx$XBEvar{Ye}9mM&CVuGP_p~Rpqe(wu+cwCkNley)& z+%9CETX^l#@)~M5i&r!7gL;;0Fh8Y|R2Uesl#GbGgf)C+6kLcP-SMLf$`vTd!yO(* z+RLiSO`xk6Y65^>7n7B1@toty6tGUn4M%+CRP6iA58BJX-&E!=Hi5bxm9;M-;DUi+ zxS)aU*I3@)@9qI;jgPwS_YQW~b|Z?J<0MEMYzwWyIoBC>qHx)nrMwQ2=#lNttz*1= z44Vh#a-T+B0=xqb)vB$Qpa;k?StN(Lv5gfVhcYq=Kj(ppu>i^A4Dfm&C`f|%AVOFb zVT=zA<_HI-h)_u5U67v;p%Pb01CxbnBsC4Gtzi209CuZm*RNaC*#1 zIB(R!d?#$>z$%k&U!pmxP9Ih4u;j8;hP+l&Rp%YO{i5z~oKdkFC@KcsLP zgVXAYuM2zMua?nnNNxoir=*xI83PI0E{vn?(&nb)vJ*Lb6;1C z*(iA+U?Pd{IG#FYE0JB0asAp4tQ2FU9g_}?Xlb)kFe2qLwd!qd-v>M;K5?0Ur$b*G z`j)XNfb{EWxXuFioc4Q>=PySX>NG@z!LiTSH@rgo&P^R`S2R3$KilVVK%u+=%n>Kz z*5g&LQQVNY@woZbVmM}3O`Z{ClP4_{V2Xp2(<2t6PxkBr<@w+YGd_D4AmUC?xbV=a_gT@_n%j;6p+qTbUj6)Al??&gCaA;tq8XMDI`qDCic}d} zTSpn+gzRQU(8Jx$fZPjL`_y!t!aZu!0+4uz(kHdgX6txBoIZ?1>`%pixl&Re#+_N#Vgk5g}Z1cCWbL zge}_2sHc|`xR%J0r(*^9hi($ivVILqEXuwrY#3Uv+|CtHCR>eP?zT{wQR>53O~*f3 zT%97OUv2|6g|REYT^Q&;O`vF?%;_P$uir@QhfB)*J4V#8oqfDHR&Ya9ydr zO%OwV#27W82#0r!5F!=Bo}){$ZgOm9dBwc$R@-3GcF|adoX)Q!3^_P;az*Ql6e`O^ z2Zu%$C>K3^#@6wQts=;h;x#LU+_17gI|!i$3%WYpC>82&sr_idVZPs`$V*T(imBL^ z5HpMOJ2NNf)$M`4MsZ?EO)P?r+{1Rk4&M87hyIqaF#Y#MX{Nse&HkrMv;3^? zZx^Ub1dF7?(=e&oH#C}XC)j-wK77f<$sk%C?Zuld*Wg4W$wwQ52J#MQ#V-zr6B$ee z?=TsV+xM7Vb3fc&viMV5Z>VT?ey+Z}*e*evTV!&%)cz-knl`f?-dVY{VUDhit53uk zypVDPyHLe_BXQN4mKNXRAY}D6*JpbUV@?ucrcGiv2^;=%ERc z(0J3XOQ(I7>L@fc(Z02kCoMIGd91=paRbd;NoHAzwcNLB1RLfU@J8KJVYg*O#s_0tP-4dn&cnlYM7KHRwEKr&%cv=XX zL|B@m6bYS;M#q}7(}$X@+&|^&?}5akPTJPH%PoU4q-;t{ zR#A7)ere+8Idq7qh()>Ri5&NmZ3c$}Fu@Nd7xUr{`lu2n{=C+4u$;6Hqh-^)2j;`# zt;#=Tz>RF(1%1sGC0*sSh}!`u5QbA+$G0-o)C*yt1b9s z{c<6XZ`Q(RI`nZWQ9nkfySjg^;xOD4w=DKkN7nwN zsQV_o~=Plbf^&e}+qoWAb1!@$z{LQ(6QyvjM_ z099*W&Ya@d#%u}&=P@sqON!)KXMQMd@7ZP|@zA#&EKsgJO&bXS zNgpi6I>ay{_Fag+jU{tAIhMV^;Gs%@w(Rw6DMa-<8p4ll2~0*3nw0WZOhYLYwg;xc zuXN2@PXWXTTWbVH9K8tW9^Xnhx<{*;{1`$t5IQCGkWW90jln-HTSlto%?wS{m zD&ZA$X6Jy9r(~l;+@sI0io133B(g;OvCe*4C%qfB#>$OUb;KhYfo;H#mLj#ULhVPb zR@b;=3YHf_cAL}vja}3`R|*JzZzHD@^*Yl$w*(^HU)K%RW_M|+dLI+lK$>Xk~zqYR5?yQiXut2(?i&eP4-+*jdm8?0AcgD0zTZtV8G!saF zgf5IvlDxbDHTd7)|6L#dl)XQWF?96*WtTGi1Kg3}-@zR#ZkKI zzcCtuto?d8FA8OjpJBa)0dyh@+!FJlR=Lu5qE`izeweSnLcB6_a#gLk3n@{!L1w?p z1bGBp$YzT7oVyBF0fQcer|{pShQ&uj@ZGJXqx>AZcr1M}s$k5))0EV1k7&Os<{ zU$V8ao?564>;3%Y%E>QNPWq=*ENVo`VNV(OXP`|DtLrfBt95JTHm%7LL}bUG};qycwQ+Cboo@9$NB*XvXL!kt6D zCU+5L>)iaia92A3M*mPC|7q$O8UNejF#R3O&A{~Uz}#Q(&s`?yFUsFlMT*|8+6~o( zI+_U-G7j=8j12M;S_I)>=7`cjA~VB#&3ikp*n|ZeNF#Xo5UL<&$(-!1MZC_dS3jaCB3jR&D~*YyYEO=wYJVCs)2e3u%lWqKVx;Fu zc;?Y8c_Um@)`jIaI`o(Whyu|V8EV7Yu4nH#m%5=*{}!G=D>^cV2!X zV4OV04P<*f(U*SX^nG_GW9}4*q=pbKAy)I=!sZoZ-8h8&V1*HX=G&Wkro*3ptW|t( zpM}=^J`ND#-G=d4QtjrbP6QI{@u{J%IT*U$p-1=5EEMd6}A=TA?& zpp7!`B7s(HqC~uYl~&NnwATR%>j;<0Bg^$h7FKd6SGwe6*q#8wJ&2eSxlQFk7Pa}v zhBTLQoVc~k{un57;AupCPSaTwrIbw?G`X*7T4>Noa35Hlig3)#vE z)96;kO#d3?S(;YsS4oKAsB)WR+q-h87%d^yTyp7`HNHcLt~;AYgJ-RRbx-n{O%)bLtmb=!b#AO^OY((wdflJrb|BAo2ApC1O(8u z-!-RAn1&wcSvmfjzh#{8mNDj#+nH>(>xazZ021et%OBP4 zavAl6f4+@q8UET!VfY6d48y;( z!Te|Ab@7jlR{|r48e%Aq6I98zF4T34a6k}LQuGixbdh{Q+3S}}c5J!Y^5!;PU984} zmP}T=VqGb~?JUh$w33hvgwlB1t6pKmEcQv>Hv|L!PwL z#TH>^N3|ebd>6&|=r_6!SoIxU-zmBH+u_GU6b<$4d8qV-Nod9 z*A?`V0;>S2tF1s3PHkIV$KPRS2K-@AXI_NZlFVipCX3{Jo0m~-UWf6j@R|;NYKxbA zm6BO*HIy%un69^5Ya7N6X*poFd@cJ&_f999 z6ddqoPn#pc0;*BC?9l@+IXPTdX||0gBl)Em_;oHk7@^n*KdVvQP4op7OYRQ%fxAwv z_Cs^O=9oLuhVF0}{82+Rej9w!Z8mB>sU(zGZVQU{ zt@AO=D#$@-8_+$G9QNaV_$_V{RM+~Y##K4-?>XBfEMm7uWj-Giq>=n6 z@!4|3rd6*w%i&c|@)SZf<)l(L<5XSqRRw2IWTU5T~G%#Qh=;W8J#k;T9yw&KlkJrs8DVZiRQ|G~AlLZXTu?cSRsX(E3xO%Z zGBBiQ!QOW=V|sYvdVv3Vll*HIeNRA9G2!4M8G9RYhvM2YtdX1VVL(@#4fdv8=u~|5QRV;Y`9M9K)HxX8=B%MV;nFB znb>uDAyx!v2g;&9{SKM`IKEv+!6)dg)dWSnmMjsN`R1%RYJqZgR#t2U0vnrQ+%j?ym8jGq!=+)QpfMK~_s{6d?at^?J}7b#=QP(!|$j%mN-(3MZ^mZJi7vryHV>(<_cT5;-%g8K&ZisRua3^WvluM^w&tDk z!~)pqc1WeJi60t9fefbX=%5Iy%=ff{;smdut6WLs(qblgy;}Ku;w?)<_jzZ8SJFK? ze_9rU;Y=9dm0=82n7TMn>+VilI?hDz#@~9>JI&Q^njq;4WPBAWLQI=WYm1unozcQ( zZE8lo9{=_%ui5k4+dDcYh~omH!XkinY9Q{WYc;8>?msd1?(ZVTkwS z#BI@XErKtCH==7|O8qF7dKz8zk97A|KQrBkS*0pCc!~m+9L1!kpngJ>O?s27@!D%D zro9qEcpslWX6abJ@{+fi15qNTrHwMU@6hDVim6e8vLm+ntbotDj+1n%jmg&YGlS27 zr-@m?J&}8te%sqyL&jhvI4cz+o=l9R2@{dM`<-dqhhJS$5G5k9?UBsWKZsgy8 zSTuWMOKoak0^2PcD#*Xi-8;=_e9-tH>F}3@+?|s=a*e}c0IDC!k46X2`cctP{vTN{ zxrS~J0v2#|vI3*i?aAh1on4@|&Q6#-~c4@Dg3hsYT4 zE3j(!Sf1Cs7m|XM%n8j`5Xn;+S*_OtXI&(~J^DIXW7gw-?wv=9J*vq+nMmH=;V#2{ zovfSncj}R}wUj^yS1e>)l8$a3v}?IYUdIfFOv~yBp=u*|P16Q&OURRD5$^$5Lm9G$ z!(hxqR&ZnvKr#j@b1WlT`7fx3LKKF5?sObove+3gx1XeRPaV$9Rz3K>U>XsolEUT` zvnn$VsFn-?NLkG35`hI$%`@^L8#97}y@3%d+&;&^)P|V1=;GQBsgb>HZUq#Wuy}i) zKv~>y&A~)Y{-f&G;y!JspgpHg{ac*xPFH1bc+oraca?>4`7PmrqY61^7KefQ+*zhF zFK!S4LnKNn`~8>lz`A6JCVhkpi}M5HUBNSm`GiMjmZ1F~h8fud@fR?KqOuaM3#_XX zGOnQlr33VL&ji!%&XFIVP_lwBSbwjnzpz<9Y5!W`WBdnd7URF8W+ljVe>w8LY`+wl zbNq2)IgND4l@tw%U;J$fyf4cM06`Z7i#T^D1JUvYQ^}kjeiWzGh8x2T0=-=HZ)&&Y zusjw%DyPMYvumCHS3DtVWk-?;od6Ajafy6ra~h>AVK26N{`N+<>**c#ZnGEl7yg$bbGhwd<#!JuwyA%agz|g~4QadcxD2{i{|Zt!H^@g? zQZ3g|Yy)q!nRL*wJ_?;tGzn5y2gkKcmh#sF$u*#Fj}91U*cF5tlc;dOX}sX$i?`ba zO+A%qiIHA=PU`p$C(yTESk;;Ub&kZz-{L;CxaE4gHX}YK$wNA_iTp|BB^_{cQ0SRw z5*ad4$NlYvdJ9I5qlK=%AnmApe5Xxl+M#nbIUBt#uP7g(Hytjp2lzNeu-Bo|iC-si z|NZ6#E4$WJWi~8 z$(#Srny7feuP;k$cBcT64}x4WFt$U@Zf()k z4WA@{z(hb!Rz!(lUsH{*W0n9{MwF!y4@65aJi@5m=l5EQS{zq%FI^L3V#ftJOV0Tf zNPUgP220ldabAoT@52!4og|R~CxT)Fko)kehaZnKP$hl4UnH>5O63T+wrGmEupP*Chj<)vuwDHO1of@hlQ2 z>SI+_1 z-(Hzu{U0rPtfe}U4iUc+yMtMyCIPH6JRlAsNGIl1B>+V0J#Q&|ke+Q&d9F6_bqTi=qiC9+TN<{GJmFfw5u?pm5ksU+dfv~io zZrIYKM@aTg>Awt|#>)6U^x%@xPU1kjZhug#Zr!DSIZj^iM%pE*tMyv+YK z2HDQFCRBr>#KvFtbKD@r8JOR@I2p@9U5<`GS8HB7IyJSo&h|!e&towiIy&2lJGNT`A2Jmt<%7QIf#=MB3qDl;S zETQ_lgj6W;|lRZ`oK7!vky({@vOenME~ zHrB41a`Jp1daD&&WoNPMhBFF_MgANHcTXVx^&O+J$=2cQ1yoT7kV93I$36epNgKhH!Sxv%}b z*f)bJcnw~lkA4l<5*YS3Pw*24pgiGZZ{(gMJ%75?kKoy1e{0r|<|=}dIw?Yio_&43 zW^;*eNn!gvl#7NnlwK8~PAAh2utYc#F2_1}>}T`(Wm#^*Mz&Yoos4-Q5dELdj|Uhp zj>zUs$&4Sp)6ZD&ZzFpD@BsX0O@fK}uYE4Ye+WWm{L?b_e+qAgtfX`=Ep+>#@^37h z8L=~W#&#({Y7y{weVX!LMUwXF?4VwFMdo~6ut*^UBoB3)b+i13z!?wI3mGShaF`w> z@=nQu4!7pZKa|bq(USL2_GB!f^@?f-pIb{dt(#me9*S$-*|nA9L^UXoSm0t2(8$ve z3abTeH-$JvD+J(qAD%f@fOaN^L4 z5yFwRGf>X&*Okx;vod+u>$>seWIgjt3~~Qcl<^iY50Tu!Zo9y?0-vC zM%Fyu))>{nGZd_W_Q55b!|}hOxeW9c+(GikRt!q?>VQ3L0nVU@2?;3@BOXJURtC5O z76W^YzBKLGJeYa`#=Q9W|NS5M%Zo?P`rmel;SU?+|L@hu@UM7^U!%nTxwzPApnP6v zlA`HC)if_cve!mcA#IFxCSS!+Ptp14Ao56)Ks<9q0M2o69^w}(yaD#1`JO#_m8QHA z_XzB}IFR+*w=LoE!iw0%wBg#-7(n%#O{sg1j-pGL_Nb-R{b<|5T!1Mr`(om$AH(|i z$@HrQ$m7uJPSaiOcW+9FFDnwhyh%jU^E4FvhxV`_{8P==o)chVwwxGo@0c|4OF5*~ zwavSUEm&vLg8h}tHuLG=Br}PxNO-jDH~L_p;2v7^y)}Ir@bEk$?~yoFjwQ!xLm{TN zyMu{W;06+4Y|i5%I`=ESCqD`$1RKK8JU-T?1-C1LyK~-aNMueCNFpP#9`7zv3=8&U zBBR=uw?*}0@5U4R&z`xc-KtBx={#L9zT+T~XS-bQN+^~*Ufot~3!t`xVCtzmH{G;@ zP1s0w`OUYjkZ2$jkMHt4s=Yylw2As3^Qm59cK(HipZH*|IO0uyj|m%?S-$z$dpRXz zr*E#EO*C7WD$GairV*-^sf{~BuLB+CX=>_AnE5Ra`;JPpI5#*)u;k|w>bcStWb`xU zEtWrD_`($1lnxEs+YR$qj{!%=91g7`6d|}rNjK=PP%wq9t~&<2lhxX4OC}4L9I75Q z(&0L>SBw{EhoM;voJ^S6n3qy3YrsOorqzIgU|0S3A9xRUih}JnmDv3<7np<m8F*CxpL+F-uGks zB+)2(WWXgcfD}i#eLCftT5ao^m0^YYh3r4^R{ZGPp}t0?wzS0v&g+ZGSAsu>s2^Z+ zCQKHje(iogtJ{2|wHZ=yHHbh5Ynt#PO7ENj4PhJ3&piTqb)t#zq)Jfq3Ybtr6aYLL z%X=gF7~txr-IrY*`_Y;VOR|sUDnz#elbTN)tT6qu^HX;^+i8mhMj(a zUzcY592=fE@!~vA;v-WDd{?R%uhSiOwtJ*#B$LXtGrqy8NWZ$FA&zQCTKwS2q;x=A z?k8rFvq79ibeZluIDQ4OLT4LiOdh}Ls>o+oBkvd(?$Z)-*3^T`doJxbyX6t~_GaPp zwn(@#j4}^7`*j6$zUp7iiB!c4hx-YEVNm@pbc&K35}PR}FhhAhuC;GykYDT!ICOR& z!nH{3ycfU#AIZTwJuwx7I>rN^Masbs8Y)5JJ)UA486NKpx+6b=K`(c}w?7wTQhtbC z;AQ-{;g#QYlJ$2n`cq^6&>cG3{}TEb8UFK<_@9P|@n89n#+Cn?*HuU%P`uPq-X}Yv zEjhNWG6K3n$V?#`G872VkPV)CZDNGRo-LWqa3Txp`Tq!tii+xG9zz3vg9m)E@fsa? z-C5s0gz|6ndXi_dR(EFZBoP(S6gFFP&0+2r{_)RqVJB#P+T3P2KAha`k0a0*> zR4P^Q496WB0u6267IZAS+?Iw#l=8Vaa4!^f8jJ-`^<&qen)Y+o@Af4EwX1?fFBnLg`e4 z1mw;mN>2}SCwhbV4)Qrb-yMZ)cJ^o2wCa~Rg;N~`;VlM#T1GhVHSly|CRBPnO?7J> zcZL(gxcRs)Vf@Y=Crf)fz>ErV_+Gv3`XWL|{u?>aD#hpmd)=T|bvS~vYtFW%ok!o; z+A(ZqTPhPCg*5}z9&%wPWVa*qHkn^7 z#y!(MS6%dg2}m?q2^pKfYT5MW#{3-g2dy(>vbPh#tJ|=c$3(60;!#rY;B{M*(VB>H zXY>0xEvBs}RgA9rXg86W7yz#qjo+^TT#V-9IR;e31r)#!A_ucEI+nWyXBJ_WH!ayV z9YdhJ7ON1L#x`u=Co5>c4TMrtM=CO73HH&$joQd}e0yGmCh3QM*;s*Ew|x$Soowp# zyC7jg6he5B)!+|{Wp8!LF5p-koDlE(6q&gF$TyOiTI4PV32{YHpn-~ZF-vTZy8#dd z2fic>98-TsLr1`X*w`~Dv$`}L{%+WY*)j1k17Hv;SC?SE)Atb& zmEbKDBc78GkA+)R%z#;iN$~-!lj6ufi@`^OEU{=3b4ns=<|3FmgHG@bnMyp}T@;w( z&VK3bXbg-**o|H2ES_OB*;A?zQq*{mhWW8yKl2pdr3u|u5QI*_+zw3?9cOJ|_|pjH zu^Sg!?|VUYk-e*kd0T>S8o*J=Fpd*tY64H`6VZDBr-mj!@d+jrxt^e@xprr~5{ue4 zDe=_r%dAu85y?6cut@pS(jT{1&%$&8H2}B%f>F4m7uwk2;hBnr6;*7WTMDhEw=&RWy-Lom!<1AY9c2I6?}e@Kbsf3uRrn7fOabUr>(<73-+oEA{d^~_e$!0Ad?&~1FIpnL_5H5IR~zopmct?DD)&2g^N zcbsLdmfVK!r=2sk626G%%eW`=s)pE|%ecV>l{1@XZ0O*M3>*a=-JokKA)6~gBP_Ir z{}8m_sAiNa-;XOVIx5bZ3#!Rx^;NQR@ZdaAn&WXOlerEPO9PFRW1dN&PzhqY8EL%- z&n@?Z+!Qw_j1A|Ga4m=@jY>tXe&ov~Ly0Hes)+F-cj?YkuoFj3!~?L4Vh#x5)R<*e z_IS8qXbl_{#gUS|%Mn$d^8A3V9pJ*DaOpcbdR8j%akx9oHN{=jv|xDQt+SkxU|z9b$2kkJy4cnVqKx^f5dNrh40bg;hPU zl7IsHLhIQeVpgCb6m!58MKhk=g;gTHZDOhLsJA;IsB)InmLm@xnPbY}iupeAiqIzJ z8aqgn(yLe=`w&Lz=RCqOm*zs93%pTGZSwo;i@=ZNR6zo0&yq|aAwy7By%VsX6MFQc zEt5tC(3ZqmgKDb6d4aJ+W83~&uSF|;V@O+PiId*C#E}W~-r?=)<=ty#D`wdq3~J}9 z2e>PnzW=1Q66E{y)_P665L+swu#c44`dpz zgA8{_6;R4nS%@2FN8LEe9#q%0{-_Guz8iQ}3HWSZ*v>K^~DYUC0A2PA=usP4#Pgo398rggw_9%(gcE9FQ5wj z1+PAKe!pbr4-Ks_59O?#aPQ{>fP|ZmkhL_KI z_x3gcJ`WDG#!BcUOmc=2%~3Wb>hnDmIctRD^9Qmb6TgpVHuZXI&#;<<2tx}%_@EY?53>})g@9C_54o4R7 zBXl?Mx&WS%sCaO>i4}bl%~Cw!V90RRZQ3a9n}MINT3Puke)iC~3RK>k8^5!GO?}iU z9>o})On`nWi?J_3SPT1wWv@QGKLOUCOg@ET&*3P$P1Cv;0xQ>;Cj>cb`lpp)#y_5U z;)FIxESsIDiLrn;N%J)+r_enWfN+T;pCgbc8e(8mm$1P&Cao>k2qYr~$&;)LW>}Lr z*67wSFVA6_eR+vVlINX0$18ieO zx`Frfg&tcFs+Hu&si{`?$ns0iI2bVgGO?MgO`iDqtdIJfy1#5<1Ay?cAS|6a6~+KP zxG@ZrgHg5v(pD~m@L1!9D+mpbzsF*GQ(Rd#AOWvLSs?^9nYdWvjRk;KpKV(|qk=|0 zCw?lh3s6DcxGdpKgc6+A%1;*lV1>re+>pC4$8$sB5gRrffT+EeaalD_N)kIsn$pRZ zvladm%Jw&r``P||S80bVUg2oDe$pLrDp+2!ndRx5fK!$S3hu&AWt&&ghxSQWJu}=!^W&pq z79(36tDTF!ciN{KnJ$v5=BS<1xYWxJ43H~IXdE~t*q{w*kP&D!Dsom^d90SCxt&oh zY*`*s3PLsAC(HCI{BNyYXSF?k5N>BUf!Tge{yeI3x}wf*gw1&ziV@PmoOk`B8U%1g zY@@2Ivd>hpTE$fDY-+oKA&lBIq~D{C)Cwket#$*5@g`5}@1(L^Xwq0MHg6=%TWIfP z9dTJSztLa9C%uL9!I@9#x<-P1?%^UWj~W~N$UuBKDxPJD_pkMQaHaQ8FH$_od&Ih6 z9mLmA9q_q_AKd?$1jH3z^#CbL7-(I)g$YB}3LTQv{VE1smsdz)_9|k-DTCYVKRP7Y z+&XiJ=eij!`*#)mQ``RRXX#k~TH|J9`Ue$c{#PpaN0j>i+furs+Rz&pN!){anahSy z%jQX)qX7X#u4jyGi58&|t=R3ngf0oAB1uCH>!;4&9!p^`hP@xt%dAfJeCZU#;uM~w zyq*l?798C;&uhx6yAQ-YFCzseF-NPrXWA7Vc(AB{Qe2TIq_%=7MubM1z;HRjUJ81b zzw?~r+HS%0GOQ2NZ(J=`Ninv$PocM4RU z6pINjt5ixX%IYTq)dw3dK1GOT8zC(rbvUi4A_ER7MyXvRw-`GI=V+lWm`+B(&9-EH zG~_8MZO^nUkfNWg90iBW^O&Hq^_C?|)jawgV0@QjAs;oRaaI*96cGA~#!^`Q&D6JE zHeZl^o?!zDv!|3BZBk+U_?bu@)o%ey;G?q1Hxe#qvhh#e`UbUy8%f2G*uAW3Z@HE) zh($=?{0)|v_}I02GrCg#2O+*6-;KRaBkA3g^s`X5;kj8N@!4_XU>P#z&#tUqplNh) z>Be{)g~u?u@R|G1 ze?wSW@UWQ4qdej1!70rCB9R4hPDf6L$$j9E0`#!Un`GQywW!hs6lo5c`gWccdaK~d zSd2!SKW`|~K;%f5B0~y3J!D%sO?SF(Qs~YSIhyZ9#4-WYUG;@XyChPs1 zu8!)??KYAvLOSwp1+@pZai=oN4&7HmZr%sV$OMkVp$Pfayicxd9{LBh{1voWy zXv>r-?*&hu0KXlUCdTw_qiCRZ<(rn<%tT{%2ImZbvb0Fli-~h4y2;z=bFR0c&B}Di z=-1!h&Kst+rx{7PvFQA5AmyFxmt2`|jA?kq`O_cgze4I@vfj+ViJBVu8z~vJ@P(Sb zLPVV?))`;UoKAu@B|y&7XL*Pyqs&yt>?rW{C2&PGuKng_&!F#^^&K<;zk4i06{}kpdLbPm}B|1HG`zj zYaZ4icKm*^qH%+=35&B)f`9nT78&RBjh;k&1ecE1tp~>0;E-?wx%YUwsTO9lplWZz zv8}~!o!qWP46y?X$CP~4F(S@ntJx$dI}6b)^~T}!4OT`5cKmvQKh7NU7AN}Gz@w+2 zBn)rdkr58ZLtnT>R9a%?Qc*!I49$8Zr$22vpFZn+murI0qRdg0K$*~?fc z9>!QcLj4pJ5s!pj>%D6@uhCK)!0%;Bm*%2GOEJZ~N2aAsYfmD_4qh#oTa=Zn@n*h? zr_e%;w%vDv=jv`J&w6f^A(wvXQKUcyGtZZY)Hf4zh)cDrO^HQKRfU>?QI>D@+r0ve z-Ni$P$G4!|8WvW2f!z$AP_#wwOU6!)7aolD@9ULy^NiQ*4b*X(BeT=zomoVOWhu^d zN{yPUP4txgl69HXH2&6}OLVI{hvO7C9cs{Ao-MPJon+cGv%>QbZ@I|AI`qJJ%XtWmX{c15H?MzL;lCXlS-y?i-yR=MF8ZnNxiHX@?zYOOw zu@tNr6wtGLUz7+zMk zJ0Yi(fmJhwqWd7&21%&=&S`l4LAhbcLYf2OP)Y*o!+YbqPmn1+6%S-Wl9<()uu6FC zGn7s{;tl}8zkuvL2*6R+3G@&Aq@hQUAiEF-rh7>8jDRW^S_2TvUaUiM7AOZRuBe(-`?iE|OkIUQvsKI|#o=aHM-gU@ zI(xh((=n^)bvJI+Q#197o2poC%A-{e68yFJ5&6+4jay--j>x2aopMnGMrjJ;wb8D$xiu`aZD*A^8= zd|^^HQWBx6f&Ww#62pGJHm$RqC}ROSbhU-Pz5tZ>?Q;MzBkh~jBL_h}zt@8=?@kzW zP{qXq%E^1CZ73#Z9b1xBXwQ#nqn1k#lD*j-KcKh2@a^9wd<~)JhR>zaThKRv4*HQA zXhaZhO*Ap-Yz%MngACCa2maSgtL>>jN;9r`;62w9R%*;^5l-%UGTmS+*{)-rvp~~O ziKXT;6>O2W`k5CnwC8K(KAP{~^sfm5zNA-&pOrSlgY)0cUo|Eztvz}eM#mCQKi}$K zu2453#*AAOf2wFV{ji-ct&EAq)7ezI>0X?m%c}W(;kKfJ`*X=^C_6L|V?;?G1JnM*sV%^tSx za3l&==yw%a9FJX?mXjDAHu1k+CcTxSvg}`R@ zo7az2IJHr!J9F2f8g#34li#p44l2A=GaMN(zKiZ0uy&hWj-9fToDPr^J1l%i(-THa z6y=cD~Ya`d*P*5S&ew{Au$OF=IZMUQ#GpYj@_wA*h*>Z2DlYtoN z@!jF`UC_X$b|MBhhk$8C6KCAzjQ87$ky-t~n20GSPgCYeBLCLJeF?rGsa;t_Yj#0 zz6N(JXnNsyki?hDQdixt1<7$JduUHwf4>-hwFBGynj_QfTX^6#rhOy8l}$ueJI476 zTy=lT*;{*5?UB5p!CrtDjwgq1q=cC^N^&dndXT1{y;4M}^$S8Ndz6NIWZ(e~461?4 z$$EkZ^YKDTKL>1bF_ zC0?rjj-KgPd}HYCU031uVLQ&PD@xDtY0!nO@Ux5Ww)Lo?lmgTXXUJ|m&OZQ4<+jT? z{RG#bAVgXncn%CYFrcerAqs8Y|GG-K*Q!z|^b7$r=ep^H@{P(^*EWzQwXmYIOwJ^w z_XGH)0W`j#II|DNEVcz0IMZ*FXvATt?F>aN;Pbd`u?8FK($4dcd|3B_W4VcVlh+V&>UV5d7=( zfLv0Z1L3nv99V*W#ER+6;;!fw9ry@_A7y!-`CWxr9yw&|DSF?lN*5Ho*2(2;BWr%u z%W86(dibqn0t3<+Z6sf7ioe zCTZkvii43aG$l2s4LV#gb2X-;4C;#zUd&ER+C`8a$V1+wVoxGO^fDKqO+Yv>;DV-< z54G#2hMBb6Q;Er@w{Te4IV5b*heuOn;Yl-b?2VWRCn3&zDc_NzR>F@UB|{4hGeJ;R z?BPdceb_MPM-CsS2fWBPq>wTp1#2yTs+#8`_!-AA5jVCuvlOgXSx0KbOTU=X;D`01 zBZD=@6fUo#yz}&t``cQVvM(TrVpF0op-gJFt=le#?$^71gf4E*b-vnRZB7`}utj`| zrt>bQPzsTcZhjo2|I3R?YTSlG=##>75|55xfT}59g&t+yM3({`^+8qwlUH-r`OZA+ zb^2ucT$LQ=b&s>i%mp@C;V#BwA>FXO73dZ85$F3YsV*7by)=3vZ~y@NCJ=7np}kEH zVqjW#s#W9Ip|LK=!$qKS;T$WLJt#G5@~A#VjDd1Suln{eF(i?8nr~feMR2}r^G&if zKdb>uHAyZ?>8}C7;ZfE!%d;j0j6%xwbm5O*n#lJQ_wJ5YaNXBGP-~sr)_~%cJ1x#6 zZx8wL2dNoxZryyX=lwN`otu<4LG-uNEF~W4%1%jrl{j{9XJ0RJ8v$bzu4L z)PeOMwC_)>>;LIdi-`L#qwrov&NRe=i?4Fk@{3Ve$#T)(#gm@O6TWQm=`qMtdu*u$ znHa#G>2heui0u;u*o-&YX1*MQ!z*E2q`chYF|iPJ&GaDbGH#?YMV&|1L+bn6uzON3 zs=)7ZW$T+X?-I&u(LDKP9ci4d5W*Lu&<(&Tn&{&RKS(=&erhhfo+UrcpPy0>u_!}O z$xAo=t10~QYC6tPUMF4%B#R7bt6WLKwaa=fqQar5$xNtfhQkJZhKt0+iU|B5kSY@x zS=Eri*eigV@nM|cLy!(|dCFVa7;8awXUYg%M!mtKgx@}4Kq|uYz=85dJ9nHS4^pDA zgI&+$FKTu#0wd+@kOv|yw$~)|$YU4wJ#ovc0bB$qwFT3JS%Hx$Lj=omcu%(OC&C8H~pUINV&%||b<#LVvG z^Aq)&){f59;(HqF;(d~WabkSPCze!n_lsOv-O1Eei1={2O1Z;?!#T)uR3e+x58@cC z-~;-6Z&39UM(x03u$x`HS7xBTzt_-Tz+Xm|zif^_Y5yJ__47|+>;G9o3G#nn>yf{r zqy9id>rx;$sB{!U!DsVK^9_FUA(BVbq-qoyJl}kj70+dYjaI7`yn!)3fH_8LKJ{5O zc0Gh)uR;2)YvH*MV~ON=OSsoVO$>t7jq8Xli`}f{ov%AVQV`|v@>-a5uJs@iajfXb zBv%y+^qRiKeok>*wiIc1)(Gf>rjmf(ZqN@lQ1Yg|gL`PX2eZ?J%LGnHu^*O!_3AJB zF!r2?V_iS$)lPH95<7|scF^9jhJJCv&u8-zxJG>!Ff{l1$I82Bq zw!%8KpkUbaW`1%%CviWJqW+c$Xru8#qBRp9|J!>?zMn>semA7B!^8SBb6geu!|QWs zm-SQqT>Wi_aJc9)wh-83x>RJ&y~ZINn zY8Vai7vfS?BNMd7+Qc3h5*-BRpR}RA&?19(vO; zjHidDmu{<Pk-E&w7TM;%=KI>`Ze zosQzLGX`mVL{bw{MnWRq@>=9H8cF0TSa6B-E+wt!gEz)CoNGSp!n@vW{o>O7s{*)F(%(4LA52!NB)#=nVlTa zWBKm2&Pm`hAo%D|T~Eq#>i5Hl0B^2?=$cccC$F{Y%m#Z5A_ z^L$r$7md`!^3Ti^nS$DlqsS0~AcU0&rmosEkQ&yY+aTy5svyt4O>4J^>ywI7yZ#$Y zWkcKHxy*VR$AJ(MIhkcnv#xXC=JixdZbDK5;%gBsp+PKc%kmn-2V>jGx2L0U)V~As zKbY44Z2z(TLlFJXl#`X||Fnyos{G$b`fh;=Bv0i&uic&mM=bcG+89%M+#TTHLU+=V?ip<6g@8=1tBtIwTlC^vk#m2u# z?PBMC;11f;+9ezdQn@kbj090yv9@Q`l^cCnXx)2cpFa6Karl~3WHdNhA!JPwxDq|m zyCqRKNyNq-^ve|nhfT%PL2=#ImSxp$+LVXwT#x4h5xGdo=P;r4f^^#OoGQ3wr70xW znMCb(hYWnna+Y4l5H=h3oCl-@H3V1B%uTmuEklCD9b=8&&_HTWa@(|^a#l20VA6gk z68}bRrPs;?jb8JP#%;A_Mt7W9w2lNJ1BNW=?jmLOaVVRhbas0NKi?;!sL)T~uhdum zarrjcS9#DmpmtY{z%bxlHX#cS0ndG_W*|H0_6GXGnM#mfAD5@I#0{1?XjrVgVbJVDCl zxqo6r%l2;^wC`R+%L)@llL7g+R2$=RP*H>qlrU{C%f4qV=Lazao!~5QPjnRS8secr zmYyi+L<;XGtg29{%M_hKq`pa_jFI9S7B)C_JpTRG`5ogHV-7`bzPJ{X zJ!OBmgWxef<%eJ`EMFR7dH@9+C3gsf8`35jISVL{O2WY^6y z>-*(V1*@y2)@Vm{P} zO;vSMI2M<(jkWhBY&ARujLuGN)2{?@#fwO;phxtF`5IS)+@{JkY=@13wStNHkwY6> zGJOtv+lJ7lts6r2czBu0e$GxXHqyuGWo(My&nd3H)*tgMKiOTwX*@0EmlL^GGJe(8 zP$mvd=;v=B;X^`;8CvzD_hS?t@~c zH`*1aiP=PT3~%;F$1L9TSfvL5ZD#EI`l7xDKcfTXvnB!qhj_Mk-bNsJxP;!LI^0nx7Hpr)L#L}%;xY(8jrtKSxC}<}IA|Pi$-p=aK@bK~ z78V9sVUWz4`m}##g=eX1t25r!@THc&cD2g;mMSaoFZT~ezZh^pGkdCR(pOFx^^Pw< z8$d_se~0Yfk@$Bt<@{$ggY|z{S!Vsett|h?k_haS&<&7z^CzzLPhM0Ct<%$JnOIt^ z_39zH-%q5NV|GZW7PJ_JX4_dWVK`?nF;3rJ71td^=1ySO#t*XU^|E6JGXi3CDR`sM z8N$B^Vo;Bu=A)|lvU+HnPDbD^aJWaq3Ygy=`}}fpN7GUKG`8pdz)E5SlOW}{IZ-jX zNWkGkHl2MToy5!~c;C^6!-h;sN+!-~Xvt(IFTH$1J^|>&{anj)yHNjj{h$K| zOA3VnB3$iVRrE2W2l}=mauYgd@!)BHU2M^PFsZa*kc9<4FJwDG+?!qX1>$u>ckxhH zpL7+L=uK4B%D}s&tXfAZpwG0nht&Qsy@d0|(}6C6Zp&;8;T3XI{^j%eZB3*)yuBzs zE4u}+$t#fMsu}w1!SZ;($Bw?ht?wJXjstUC?;lnmFyS6|cql<3Ibd-v(Mh)LwJnnn zo9vojTG_}|#w^!;eFcOqNb1bL%L4fkq=;`Y&C@#olGUhqkM?bp%Ga~UvMUXNoz5&o zyIkKq1dI3yiYV_$hz{^{jeDeC$!)gH{JrBKhhKU%tTZ$m9a;O+@Rwgh z=`(QZBC9PBPpr^loz+&)0UKa}IGZ?`_0 z6}TQ5Z8tm*5I^96-*}4xWiUC~YJcTclB}Q<94lwcJ;3l_dt2P%l6uPX>iPmglP$zw zpgs}PEfip-`BhjUp0?}I34_u?w{Br!2XVelW9h4xTINdV#>b_~qa~c8S;40Y zDV+fcNtU0^EQN1@5Bpkz!>pJ~Je&`AhYd^z_MjLU*>-{XLiO_l3Wh=Q`FAS(2N?TZ zvj3kG5-aP!$=0l_f8Cz^uWjy-`i9eA`xz(dm)b|mA`XNAznFa`N3MQaCOH=V=y?rI zqsYQaY@{5wv|(8Y2lwz7xWDXEXd!FsE0WAWbn>YaktD>Su+B!vW2W-k`+dA(zu)$ad|Oo zrB@##+RB+)=|94$RhXgmYwS~i5_68wFsT_hg#(oemDbIR>y$PeFlZA7hgA*-IAju5#&Q}@EX2lV%pd+-i*6Bf4gq! zn6`}3ft#-o_6ATZ=@3$sEn?afd^6#TxAml@;?Jdhl@HB6TiXj9cmE%=K%I|l^3hQD zhtQkFw<>0;sb~q8bPA-Ekf|;(o*mK?i{T+A_hu=~4{&~fY_|epxmpQV0Eodxc{|0V zHtO}OXsYd7eV=U9m0)B;pZy5(VQ7pzotH4fZnB7Cv5W{#O5Ulg*jP=8Ew`)_2`LrK ze6~rl88l&7;(;^^+A{61gO)86d}X%-1Yoj1*~qSk9Q0sjv>O%2*EwpSFqeOy((r?h3d&@8NljDnl&p5c-u@qY`XpSv`JtSOw-Ou8q=ee1Jd%YlXVay>MgsV@|T3ZKSOXqRL z%drAeDFas_M`bwV@08)m5A~!&#dLY-$^cbd6r> z)Eh~+AzCgr{KJPiQgzc_grx~r7!B9wlj<{7UnGAVT882>Qlpthy(oLzrmkJ-9+_1@ z3d67}p270Qoi2tj7x+!$SZPe)P7QLkNW+X=G=b4&M=bLlt4Q?KQ2o z@IXmC_I2THiXH`BXpXOyy{nb|-o=QqpB~jcEKljcb7AOd86;yQ1IY8~mK~^#+DwZr z%}|=NR0`=_2)-sicQ!;meS-)cO*7NqLP6`o_YM~40UGeel=8V|P!G<8H+O9GL-q|O|zE`Fy6dYVHv_E@m$BTlzaA(T~TUUGGh!S{q#@dh8!!wCc zCW?DdCF*|~^J%7e2w$cz%^+%+SY?l>(H*BjCciqOFJlp^%2)lFx9_}(SSJuVVbD!-_{alz@oWt|bBj zXPp>S>8NZcOaWmkd;L~!fXcLFJ8;?^uP@%>5QfkethL=!TJ~7l`|UUxsaT&}m|??x zSAL}f`US`?IzIgGoc?#J{_7CI$jtc<8-w+KAe*xO-^ixj8vie;@7B1Dh(H8^L{2^y zOp`Eoll&k#KOCZG0o8QzOq3jtd+&XVzXk%KM=~AD{h93elPDcLdW#oadJ8e0X@9Tx znwd76`vm!83$e6rBmO5rI`qlXiNc_VWrNcsFig)Lsu(AE^e@hL58tZ!w5|!KrGzSG zE!`cxoIH9vT)cOdFmg2MlglK;bcne09lBBSzK+1&NkE$T2#QCEJ|KW_`(`IKer`OD zY&<0Mpz(wVj==;S_+?!l4)dF2x0Twcs%Xx|< zmO4g?Vc^Es1x{~`Dy^KakP8vLR=991FJ3SHKyf!}Ar>*MFjquY0Tkmv| z=6OV(@=LQVwt6?^63zKaQqR%#=ALvlQ*Cw5H5JV@HaAwYJ0CgWxuM3*NKu7jNy@m8 z15aTQ6kHvCquVXho}On?>PDW5hY{!`nD%q1a%S%ug7z#eR#*_b2k`d~z_-q}E!ZE7 zSRlTA{6xVqUi4!IJaYM-KKxp8#)PIUvh{Wz#XWW&c!Ab?r*F1G$loAjoyjJxlq>@rVT;r+*9w89cp1*%rEhU?* zG#l(KL}9{CCTWUPR8bGBRt38g09|=PmfL$5o+U8!(=1DLwtEW;#f4Je&2rwTP~oQJ z($HlZm9<}DX&6p5*DaU~;Vi0#of(_tZ_5%z)WTSnR7x`}2$dC5^G`pkT(#c-O=Xhp z7>z*q7!)~a2S&59F7*V(0$C`co}8c{vxihe!DOl`^~^{?;K5_Xs+$T&$Ft;S>ZTjy zs;snIG1lUon*z^WJqr34-V9Wjkq&ce&*Tr1SZ*z6Ts1Di;+0gp8` zo6X2kdY&i)!tUGXc7dL@`PN7=YE?}CK&;7Q3G{~P{o*h$B!a)FR6NiDU|K{=tV;$9 zP}^V{!YByYD1^QOvY|jMepdQSuJ|3)CFvrSFOT>+pr1!i`BpwJ6?4Y9sg(Fp zBT+Oy9MU3z=lt3iuISi57>_vuvRnFl-&;q^ch0ShUZzn`pUYcJ|1n2Se^o<2BgUu- zYn`v0o;mj`zUMVp;CUBDftn{Tz#|h>_aZp=6sv=wVsVXq3TB`<0&3y)hM}aL5S9fN z0dft5%H@nLi-&qClx&4+;b9=x;K#lj3RPCicBu!8E`O42snVgm_EtF@DyZF$E%OQ6 z_@#1e6=;q2VZGM2tYX_#8UJfD#%m21Upihy$jZK{y`%-ViRoA-pOk=XoShKs-nyfU;C# zJ7AD!^>y`Z01gQRTdUYo#)wHVML6uynXb$!B_?{Sned3)J7elj#xMBCM<%JLgmLW* zK|WCyZmhvqS0gYyc`xSo0bJ>6gkrZ3XDY=SJv|f!WGLj;*ZzVL z^|o<9(63O~H~#@wax7l0);+T#TOiMugpuW0Z!M?@^rGPy>Ue}h~)=?3bYRI$jiFI@E}M=Ts7PdLy{dOi^kP|m(XA;tzC zkyruGa#cnPH|hb?xoUM&UX_s_h`k0OWRO4}B!RL1Yy_Qs0S`WiA|Hr2IsdrC9N38z$|9eLP#yk^tkmf3%wd@ZOdL_srAR9cj0rByFeh zPjbrEPU%h)N3J6Sst7XgO}u;^h6*I_4yjurhVo5G?KWP)n>>`bwq!WywjB@W_XG|U z+tn3yDO#Mnv3uio}H7=ll#+j(`Y8$7v(aIk+=qiX)ICEE>5R37(_;1H^QX zjP(O|kLc-f#sD1C^7w){=J1P<7sj>i2_Epamxrwd0 zYW05X4gLA1!u#K4_CH8pcFzCYe6s%!y%YQYsdxHs`<1j=W>X1;xq{x12>_HyV3M$p zNzrPhwxwP*6m`fTpRAunIfRsJ)N8g*lrVMR`xbcky`Go64rBofBVTE*4){KOH@pz< zJ|C3U9_?_s{xJ(Fcr~qo-hu+tgkwZxL>epoQ=LYuRUH^EmIfQo^;fA{1q#BRr}!zJ zc5t696sevae{j0A2Eczd4b;IoO%uusM~H~%F`uf|e^Tyxdrw*e*=cycye%w<11d5I4dal=a|{}e_EKkG05PAfiLwb!h6qahC0fqsS*7gN&g^`AtPsh+H|3yF}}^%Na=$a%D0+~(S&C* zRSbe-QtF=+wOLyB27M@}m4}KCWTQ}9hnclQXFT$8@miPyjw(~Bdaf;>?nYVazq2L1 z$Doa|^nYMuy0(=FV;N(%x8%Szcfn$e{Mol6jHV6B7%$k!Gx2~U7OJfjF=J>Xkhjrp zoXG5R)u8>;Ywe2YDZ(^)q8FoUjc&4x2F{g);xet4kwjKS2CE11&oNAo`3r;q5x z&gQu}G)JfbPqq%Xl}n8s*zDAOrfhhqvoz~MmqR-3t?Hq{J}w5=K;ebAX-CVNLa6L< zWs8nh(`1(dj$zCTt63>}N&h^hwZ0uBpS0MvA?sj;sql)Lepbu!=~{UXEuIH+K&(m@ z=qIVUVV6nd34iVpa%7yh?)BJge>p4;BC>)C_-Y2@#jhve@T3?`o~01u3V1N-S)pZ1 z)yg8a9(hI&-*c7Y}jn)?Rg!a~y%E@X;e_dg3P|J?Z+A0>Ys;t;^ls}eX z=hRzMy4;sntUR7R(3~y55|_g{@u>ZI(7fkt(mq2(58mO`e@EWf@onm**Y_{$!gbij zT(}sDsLAEfx#nCSjT>;m!e!`f;g@frJAYx`JDZH>$#UzQ?IXgiFv^@-_8?J4hgBLb zOW7BchxvN1a&AX57@i$eHK&UjsF(6)L7|Js_6^_rGVgYM4v06GKxj|o#4?%IasQfd zcbRDOsSIPzzgAhoqb&zH)@G+|u?>}v)WWtM4`!T3DhGn(^SPpNT}+3IUe~w>_@#(F zqgxzfyf5px!l%HYy=CF=Ex*}S<{EzNOX4uT5;%!WuP&FiI7C&oKjeE0&JvG??rq=> ziWugnn&24~=8;`Ar{mGkNbWGG8MxX5E%f@7xqrjP6v?)bp!}Us$CpTy6Os@2e-}K7 z9PhQ!em?tso`WJByWWYegk#OE@BKbLc2<3Zj16U}p$y@lvs}*+qcM%D`Y|#;PMikm zW)fe5Om83wjwkIHS0W?2PuRGxN|PS-1)qlL_PlBosqj?mkI5>)C@^YoXf^KLy%B6x zE=Swu8vQQke(H#=Qd^bXHyD6~$8F^F{T^|anQCf7(O;-8e9&BjNFzrmO@?&WhI}6b zDQw=EgJYK03dR}mZa=TUxwoIGj3DiV=86D0*9OPS96f5AoN@>Y9UBT=N!zWm599=% z5d$sw0&0@#-}&?CnV)S!t!>?~l4sD)oW?IVe=mKY{h>c(KWqCaHW@t~q-W`sLH8Xt zqzYmXt)IhDRiL=*C8Xv?@`w2I4Q4P~|995?JD2`fbHnhD7aJ?bU(?0Ep8mIqA1LwCe~9UKAkqdZEld6Z{qfJpNB}Z|mE>;T`WE9)Ojbt2$e_o8@SB zei2ELy5;v!&b~Y4ApUGn!0Lyg`dz{^`RHT!#%tU}>AZRD4VDt8vktn%zsdFLlifK0*4m3Q})58qoUNdw-6 zOBCQD7z}w9IlA%n;Vc`1pZzRyZ(@;1$XkX zMq9v<+M|Hbq%;!GC@5=CY$kZEob1bl=u(T`rp)|HcEhyCWgDvh=o@9_$={L`2k@={EOsl+GGe{7 zWq%lTT%3!Ig`+lIv+hMO3Fr+_&2vw`jz`FPawc$|hr!Xe~2n%8-yX zqV@Nh#p#W1l3rKs380$~2`Fa3N-T$&Mf?N)UW`|`dyheb?R{CBTX=%)C}|Wga2bEx zPbAP~AgV@4vGGdTKxm$MW^ShcxQ|ozCuwNyKap8o7b{eO{n1U42Tcs*iNMG57(5K5 zTMP-R4vWY9EzC>}sX;)~#6vsQ=4X{i|Kn%ER+;LxLQYfene2Kw4)64?J?xfxMYwXQ zq?ZKtfW>qd!j0@Bx34~@5u&o=R?n{ndKgM8t&^#>2v)M}RSFjb4eVfgr`>@? zA2Jj1t0OC?*^z|vr|brzMzU%gXe6@2o%qe*i)6?8mf4U&VQAUc@8(jsMAJeY7r1^} zgx;KO2)e?am!IB|^u+Ttn!ebLwj1U#?p{&-Lw0ZN^yGSTEWjg^lD1fD;*K8?EyFJ80=b-McL{qB zwvV~(0n(T+=!a(~6|g!dP1v*3QA7{(NAryiD6to>YJ z3;S&Yi4A(r$eUZgczsafLoo~ndACV|RR;)5uN0ds z%?mc=3(f3%SkRSRH&#{8kas3(1cpZzJGpogkI2(h40R6ei=v^!@<0sb;W3aJ%yo<| zaga*~?{EV8g@ZXDlMhyx-A`UQYt05>zde7^;Jk7(w&}-%a7BLBT(b{kskLUV8gQ|b zCmyq9{IU^szv|$Dj!Ibp393~>7c(T2t#Ubityh*TaY+I~eG!(HixcDbmEzO1ek_a&guPU%*wb1-XOWSBQf^7oV(c z=yR{%Wr#YN^sB=qBToxeCbzL(f7;=y&WA&|KQdS&B$x)PgEvv%dBIXY)F1kKI-nrSsZ2K^M0V=m|;a0nCKg-Lme~L1ZD0weFX_qdG!0 z%8OpFbwG3vz!d(iVw|1|Jp!8A(kZymXLSYtUL9^C* zhSM%~%KHjqpu!Y4D%;(k$N8q~y_5GkpUT2!V4AWt>;kmiZ@MqbXTnsUR6mQXap%e? z&{^H5I|c@+-B6m~2L>|^_w;Rbo}*22$}64ICXrwJuFT~%h)y3>8v=NoDGGSep@@A@ zlZg<}$gfVdNLiZ@dMS-Z)FQh!`r)uY`@5yLZ9jPbr118WK9i^uTj~u_`}rzjCuT%3 z!U;cOe{R`ec>jKsf;(R8NdUVQA|GTY5M;S!mS_s^rxE&}I3 zcOU2stS&@|gT2%DurjO9G}nAnvA3j>gqs9gQxkFm-~8d|K#X-vql?R1 z)q{osC~gAe+%sdUfUDfKLzc0zSf|AGM@oFXB6l?~26(2FK$3l*T5$h8-4d&#&lm`Y zPJ)(tl@6(D)Dq9}1sAPT--DR#f{ragh2C5a!7?GwW`$DsF9M)Ez9M;^c__Z^3Y<9A z%$xk&FicSz2>Tf49)Lmg!;w!YV9J*Ii73^ienQIR?#jDPbal}*9c=I)^JnD^FRPcDe+CV-gLialdpzu>YK3j>m( zxujhEWu%d{oj6QFN?3NvgMWS9b9s|=7sFZ0@ybQwq%9u6FdBAo#pS@&Z+sEzU20y#l+5LMUYIfcI<;=Xo1=d1eETu>Jy zMT$S?ZZo8qC0RYjZ%QEywFp)P>^&Y5j&lLBPxkVkWI7RUxQWc~Nv*U}GB$7*At|&M zZ3tW#*QJV2$Mxl&=DbC}vt(ELP&S0xD#=ev@&q zefPec7lnUx1P0nMM*DdIN1()S)N|6Y8Uhp<12PZU#E`8J!Au>%qgFabrA(HEqKZ8< z>PRISKe68uX%eq44i_5pZ~@0jbgvnK{c;9#_wjK>|w|Zn30fg2fzy zTW}esp2Ws+nDLk$W2s%74W_WZ`qq|hLTC=j!RmClyfadQ#JuA~lNmO4Jp&P%u>oH^ zVquMZwqlaQ)B(rg0bi2$^KBY9NBdJbNh1HF>gI%vk3VY`knaGfW}&@5e)K0N<}^*h zt_aQI-D9Dx^F>2MaxjZX^96y&4uZ$-EEw_DDS;t zntK8Pz2QWuzAvPNJ>=0_=Y+jx1zFVFc2?QR46Cl1ROn_%V~9YKWC4tF_ylUTQ`DxU?;pOemBsWDy^Hw*{; zz-%cndpUl_C`beFKAYFi5w^NkJmyXMS`MCp7X2kNux%mXzSez9IA4%DcNjVvz?cBt zYWtOvyIQeWR3<&ssEF1UcROfQ*RM)1y5x;`XLmnP&{J3jvM=O}9T2*}+`O|5msnfh+o{i>3B?<&s_S{$6 z8$zgMIM%<)5lM(%tSFyeJEpW9i&|}Sb;yb?JPXq@F>ZnZ1*f=COZ!Fb5gA~wjr9ie z2XX|ER$h3Vd5SqEpp_-|lrv#h`96?}VWg9p&B0D&*E(QT)!t1Fbem@KG-~)-UNLmi z8Bu)!(d|S1@fGf&OGi7${v>2MKs_(HM?8W>!1(wSU=ks<#uuDlL>!W#g@`gMe_@a1 zL_d8Iwr>P*WCHMRxAE8k?=9>I3uCqVp=2`0YVQ@fA{siKLB`qpvIW0>UfLsEnos__ zxBt6X{@vTNb1?tEZ4|b@O&$J!dwaIOg&6;9Sv}H_w%_3ROR;|2GR9^ks#I7E)a^0{ z)VbAiS{tb6lW59iSP)J;2HDu_XHKD*M7rU)X+$60cNY@BH_5)^5Y|qPXF52Lcg;PO z<9$Nya}CLS@Ju~5)*1TnoBj-xyvX_V!A{^xL*B)y8H_?zI8xdyclr2yC3l5dv#KrS^Bu}Xxa8j z21&z!iHZSa?ReRp9xkABa{OPr;*DaHq6UHZ`n&WFN-E&3S_`r z63`Om3K~P1EA{p_(*T%%f!s(JLDV;AN_0=T0FEWAM5Ty6i!56K16u>1A=I)|pmzTm zGOQ`Ix7e;-9-_6(ZGj>iz79itqN$iq95ZeOEo<1RVZ2TrvMwBmFSbtb$+=1p;373G04d@!FbO!|+i^7D z`}NV$Mwe0nb}6CD%8r3U6m?r7m@BAMyyw(vp(oQ0_J*RN3R<`}sA+@tMuDx)HW(o7 zaugOc`?v?p`r&N25J)!UmH-zuJY5>LY}sA@(g%EBHn5wpuu2!-a!Q93&Z5Y>DCmWY%vii97a+&7@9MO{38S@5*)ydr)Anm#f%=8H~-L{aagUX#vm~ebPkXqK4$=9HgT~#vfmY4)-H-ss7jxAQrIgCk3trsZDxd zijPXx>l09!w=%5#LCtneAU3bL6c=N&=6Y)%gd~q7_7D(88suB{cBX}07PGw=4dRH4q|P7D z4@mQF8~sgx8P~S8_bfYyf_l6_KwvC7Ro_Y-HhcUC!cwL{kC!>&c@XsjOdcI;fNH1O zkZh4J)ErJsTaJi&FR8DEBm~rv=4A(Vz6blm;+Q3?{UGN64nNEO+imanPr7!YUF2$9 zrzwa%YYB_clcmJr&3yR^5_0`8YezXYOd2tK%@P0k4vvo_TouA zFDi)7hV40m?3T-Fg3B}5F!LSFG~BY03EHfzC3K$1830QTcCHtc30TN!w_tpygZWwS z+*NZ<2es9X*YS^Z;eBQgmfbKTidyG+=*g(Gr!qVvByt#>;c=ER#ExdZ@Li+S(~G5xYW%g;^D<-O;@hZc<=sE#c*z!rLutqvXj60@899` z7O{U(ki&ef&dBn0{^$Xpsv zo?al^STs>rGf}tf4iT1PvvsYyKzG%?nvboeS6gY)S3kskZ4b(`Da9bBf|D2(j>$}r znsMWw#)!yEfiaJfvP<$D8beANP#{uZLCkMjpFZ}lt$QjZtZNFc9XrZSySSK$RusyB zK}RGGk`yZ>Fwjqta{&zq4hPMN@MzA=j-UU{1QN7scWy$e~eVN7mF0K?>Vgj8g!z4|{(!cv93X z;BkJGWYDjKpbJw0V&W;Z6=e!iSmOP|ln=Fp#`S$(X^7ti6a8ZJ^QAQiSi$({jIhAq z1k9G~-jmHDB~P|$El)w41#i5P@UD{AmDO|fb6S+Z^Y7hsqhJJqr|Mh^t!Rs?P^sOWt(ttcTFz)c`UCc?>TFJ)IPT=?t)8*^Gb<5{y8`gEa#q0FOMYLTaFICaRp( zlW`2^jN?!D@W+VGW~;AlagBUSHGxNkZ1r~vx5?aTu_eh7xoP1uU(|4eeqmkU7tR)K zhh^2HY?i97=>l=J3^S>=@8WHhg#k+f%S> zKme6~M7ymQhS4f)>h&_q6G-F?IFyAV6Tv7BR@T}>0k?S49;WK0BfqzN)Xc3J&z@{8 zfP`FOG4V7%nKn-W&IgcoXbNdeq}`9Aq~btpPkwkw^Peuh9UPRLI(mr(b)~J%5TPs> zEK5f?s0Q66em!!-xaXvJ1_cpJe+>TAO0DQ;^E0t`aC-w|Be?-8AE%9P4v1?+B^XT% zL%dSdUea)mET0NBS;{e*1`oe`BBjiM6hk6V*;H97-UcFS#}5w=B#CQqtNeZe@ujPO z1J*&~n=VHs?)Rb2Y_c6DMcc!FMTA;j`j`wDI_4Wrp5ZPqjEH?+Qop;-J)sf|l8r`Bd?vb(wEZo4 zQI*8AI7$B2dFT;fyw?7DGI{hd$%o^|kh!ysHG%L-A9%95Dm(ZCb^wf*av0F(0B*t) zD7?OEpHSh|#X2|em=b!nIpZ{#uVBasOTq>eH4aiY>L2Zwzm z6c`(YBb(lYgn~ThJF79kG`|u&!u7{^XM}hJKz?=U@d{!7>F?yo0f3S(%Sd7P zzO#b}{?U_%QgMQpkA9fD3*GiDz~H)OG@s!W0`xorrk&v>hRo$1(6A3v?vf=xv+?@t zN#sk|=3WZfE*LHSdr zQ{WY$paBi*$MMsY!>CVKh@-@5-j_Dp+{r2OA3k9B`#1TuzAY}VhcdJzkqccGN{0`o z*8>?T4feV7_^D)CaS!z+w}5ce3pROpcJ_-h39Nn?tLoOd^EhD`F7i8j>(`JLygPMK z3u?fe5=e^LSq{G^w)IaOQV0)Ui6rZ^vV2)7!Xe1tx_O05BSxDWr5IIC0lF&#wXJN! zqQFNDUq<2V0}VTJh`Kg9FoVnNJ`nN;RMW0X` zMl_?emZi>IVLxz|@e7ygbh)2(VZ&>!M)r=$!53y2!ZmMbQ_wlmO#u0**KsNhtJlR( z-AG1MZTA#nj_{(kg5Vn9=rcC%zO@Y zAP)?&KijBRAs?gJZ&moIjls1Z6)K0x<}c%7+khQWSsQB1t=0_90z)yCp?DH7=np=a z4LpUL3l-Doj&ZPAFpHuMJp!!SNV#sWjC$n&UFI8lR1K!yaNs~=MG@VK-b}6b)FJqnz!19CGhmwJ7>^iXCQ%uMkX;&Khdgi#An|i=%5lD65Kh2k!oSGybgp z8_CuS&Ar^|@}zoq5!bq!HEjMx^qnJ=>#6S++6uBbVY<&U{_Zy%YpzOUldawN@*c8N zt})~T&r86Dr}whlrx^BmNlei?&n%vu**N}%U2ryjRFB1_ge4xu*maWnIgx&X#*xff zd$ihB!`dny^qgH)BgWO+;ajluj-Lfb4C$rKH)j{ca=ej~(Fvy%!F%x13u8{-cq5S) zUZ4YN6F>&kX;H-Pce^WZP08+0H;mqGaeu*gp7|MWJD;e-RA$|9X5RiLLO~*JE_dX` z9P@%z9>0*UH0Nn1lyU)LSip7Ekg6CU@t zFyXxnG;_*gk@4aSFi&?8p^S)F$kCIc866sjbS@BMwVv$I-8{3&%8TV><*i9Ra^^`3 z5d%FBOtol>#e}S0fMY_VL{z!*f*4k}Dzbs0xWwtS#KI9BLP0tS`d^4 zR5mz6bsp-`<*FFXTJ@DeYD+=i7^lj~LtU!O{LQgHkj>cvxvalS2+)#D*Q6!GT;T}{ zQaRjbT2>=&uE*suuo&!~2krhq3{WatI&p=w7_4?xMO1ItwCOSJDjvUWf+ckVYI(k-65D%%ws;_@q|XZ&FA zNEH^o64L;4Tqjjov!h$e^ZnX%m$%rtNuzN3Q?G2H`2D~0-ai_8#_z=U&t2F*%GLjj znArYy{`%kZo|?4Xff&Np14?r=P6Y3kEZZ1d!V~}`(joW^LPjim%3>o$M6rz0GlzI4 z@gZNkcx9%(Vw5Roa36yVYn6Vtm+I3Y_^u2E#vlQUkn_J=Qk;Y=t01kCoxbSHe^ z$(&-BTP8FROE|&(k6Xg&>@|DIZbnU|vI(eVQOJvV40L=Z4ZLx2onGnjB6QCcV;!37I${>kcgOD6!3U(oRpLgRhJLub&BZ(vbo5qlivzh9xSBi!4=6q zpswB-r0>3&JIK&NO1MfOcXiX33&V%Lrw;i1hoZ1chP^u_W~|^S_)$#V@((89HH+*! z970+tzDi_2DrA5BiNvLHlAz{LF*D_6CH%Epwm)W2$yt1HO)Au$9a?^!%*AWAFbTZ|@z?<@d&qhe$7FE3##) zculL6y)z;s$=)-fY?76-vt?z=9%V!#yKEwq3YA3BAb!Vd@M`?N-_Q4tw?D22_v_r} zI@f*f^E}V%y3V=p`;cq*5jInX=6H&i$Ri=9Om&FW`U@$KO8piog{a-`mlg+JaYGr# zUS3k+%}B3eqrJe9_WUdH!q;ngGJ_{nU*57Hjq;YCzt|D$o!nb9(04Fl(d9(?L3Zt` z<5QQ#)shYoUOE;Hk#`v^Ukz9g%yB+7VL^N%)Fw(BE)j}M^|z9i;m@fX+Po?(-p!h9 z&l=N8&rl6L;FELzZj%DHIV1Ij1RBZ?ua|NYFS|21;ZJ&AaQ^6fqw>uuNl~V~wng-r zj+K53x7nn^W8!n=1KA9fxvCE*zFydn;f@YJoNCC`^SXR;vwZ{kAnmbM;!M=x7qb`F zx})aq@3&?V?&WE}RNCrfa#M=kt2RRiby2)`LdjS45(oS@xe79X>$(?Mv8}hci!d z&7>br)UR#qP3mZS&oNy2J)S_+YLLv%?*p{Airg-eY3R*`ls&n_K^c3FKYgTj+4?d( z{vjQC3@l%&L0wiT&+R_tVkiF-ZSAiMG%R1F*Bw3&Hoa;0Sw9n;`fGG{*vBg)bJ*v_ z(+>+gW>gzl^TL~4ZN+PQZEQ}zzqAni&LwiGhkNkH_`JI<@22Ix_ah??KYZQODcf`{ zndi*BTlJdd$jug}%ZXO3J@*|+`EZbXu*I90rvFIlx9EKhl?^tf3&LZOmX9V*yr8Tx zK5VC8Se{Xnl+ShTBHg8_Acs`nJFTEeXUwFpNEwn?cCA*6O=uzhm-X6w0=Y?c1EzKZ1#=4Iw7lZ`Sm$tQkKiX zQ}vCBW1iHSa#Cxv8?)L@tOhNMX+mC$n{Vl^-6e6{9M&AwndhdLF#1f}5~0Dapig}B zS&ewiw>LGJ2<8WR&)>PZyIhI;L`dawq~-9um~OqLnJkCJC0~UOq|wXf64E^aoMM{n zQ7VKYC#$$e*J%UOKYPUQ9YAQvJnei~32AotNqpb~=VsQZwaIFQ2Fj#3|%_#I#`jw4~whB{8MZ&fwY322TcNO*4$pm}O`TDi&doIYvt<>nCdMo1H z{Cm}=+8fs=bP1y2#6`(zuED<=k9B(}vRNCwHVRRG7P=s9IUKv*C`uS?>BOV{>^uLn z&UN+75xsBZjbR+&pPX&=i6T%=3xu=#RZlv9@;=W&Jq}l8Ad@zt$%W8`y>&x?3&{7j~~X11pN4d#TIYoe3Dx^Q5cRakKV)A-f7{q@Vb}8#`}RD z(<$Z&$}s-<$0EmAdpiZJ@+Ovg=zc~T?ukPDln7#h&MBCVKUXj{Un_(}w(!PZKSo1$ zJzVVUB*`VkQ>b@Kdz1Z~KY5&SHqKznqT`i4dtxDqEy6#&jGL9{?8a4%FJupS_8?!g zdmO&@fXSS)mG|KNhKXzMrDi)sa*`f6H!%#qADI2xA`Y|7yK?>OGZdqETj|8Ooufhp z14|Ig_iNeZs<0WPv=oD>)RkU!-R^0S#r7O^T#8$@#;!dO79qJ{3QkC$%pB)o>uAUsC( z?J2|Fr-NZP0$}s{_UEF#&kdfMq&^=G?c!ja>oG|xSbW}m`)ZwahSx&h z`}rr;-g(kDn2qWVzP%h7H+Wu-nP)R^f95rsC*cKwd8CJrRyHGhVTv~dI|wcXYF#@Y z&d9TRV^x5RuT;tEU%a}z!7J`?lS4=H_tRUzdU`zXkBL8&q$@{0ESPFfad^8g24;?T^2#JH7-qd>d4o9e za?YZx#O>Xl7bi4ko?JID{aMJ#mGH)DBcVG*D!J9dvgis!CHaI_&+A5ON>0XkihUP_ z#%*zV{WpDJOrixq9TG=Ke@!rlmo!5axRL20dkx>BC?$)RI*N{

zh5zVj`7V1Ko*xTYG)%XpiBG#QS0+|eBwq7jp=!VT13}@R>EBF|TKiKhd1wjT@}}D6 zj<*Ziy6~GbwD8O4hkm&g3Rfu07+Y8!r=X*~MM6~2#_0O1PdASuGCMu{7L^e{8F#(f z{3vN>DepQ;U#E&hw1&~X{6}rUA%V)#;i~*SpGT79$ihM)IX}8j3ttdzo-pe)?=vy3 z>ubJm{2th~83F5JzuI(M5ZBI|fv5hNCtGESty2`ge_X1YNX zPe0S85In|gO_>^W*6WRSkjwp8yH;Pf&>Ybm?xcQ+b(*l!YO4=)%cCT5Gby)kMS2Ts zTgubO>%gRRZTA(}+ zD61RQdxZ;z@pDv=d6vqNefH`X+sKJZGxOZZ$2r27$sNg3G-7@@O`ra1ee8*=x){Mh zQ9qJ}bpO&{bxfvybh>B#&#({?u*l09_t`>xC57EYUJX_jQF`5sFt6er`4EBfYiUa# zZ!{uvS*;C_xtO^;4YQX-7Re`?QazMGR`1sjJTPP>E9+2pe=O~8x&()(lii-ETa&C` zZ>`vAOUV4BZP9bCKM?%0U}=2M3<2AQEEUU{MiFDE*)_ITBV}QPM2D>^LfTM|*W~S8 zMIImP&b^c=$K`!1IR3%`VyQ@2^T86uL>ek9|GO14`s)sc>T=yi7TT$&>Svw(_~v`2 z^M82T6m?o%{YL1t@!ewYSD9OuNj#%V_N6~3D4aqW%-CG`%C)a^ueZN&E`Lyz)oqq= zI8{KM;hw&{~=H>+)m{f|lpO*Sju)s+j1A5~ z6p1;>?t498@O}4U)%b~+OV@sX2~zk9&x0FMzZL|I>$F>)0TwSB1-P!6bpEPMe8Ut; z1Mm51d8~LrxtgLsJb~X;?O5Hr`npE1+vS=@RP>Wwq`ud9_;X%M(I=CMOY>Zh=C9Q| z60)N9Kq=s7yWR!XRYkU#OPR2R2lUAaiR9klGNg>>ojJ3O(u6q0Qmj;uUN+K)RNB+O z;eGGTn`^)@tWtM?x5z`ft#MC7dE`vC>m5mQRe~1_Qic&egRgmeQ#;4eJciloHdHt#jJ3_Y~2mv`1v>?_a0QQwc{iZr`xxGT(BN>Z zWJREWUC7c&B|d|@BqIz8>>n~(_=JixzIAhjg`N;}u7WqeC>^V!VC)(%{qc6>y!g>3 zKT3h=Ob+`&?$o5|-WHP@#A~avHIw&ey{GnyJbPlu_hU@IJ>A!XGJPZJT#TRPoR;D} z1N!rm$&aKMSUie&+4fy@>v>@rABL*)`7zYMbYhg6KIB-pjzY|&Fin{)-c)+V>0I$h<^u(0gV2vY80&fPw2>c^-YYq%Nv;UfKsqkEcGo@jZ8! zDgJMMMzb!OpGA;6*&ozDmX1;X(|Z+%^!m2=89e3m*}j*ujFU@K)4$Pm&W}(asG8&_ zwUHB(n1)SPD3@?g(66yZ6$zV_^@#-r(j=V5@i=Jy&SUc&WW2usk8qAffT?p^1D4 zi@4Jl4xCW7ES*sfyA>wKx1TsJNA&cgD+`J9?hnlUA1-Qtd5d?^UrA>J!fVv^6}>#Wy0* zovqyUoh2nP`-J0U{nwY|_AaENM@$b}Fj+4@HtT;WCRosapz5U$8Mky<)WywbJ}|hy zI%Fm|{UqGfw`^uv@Y;&5yN$XQqAFElPBh11M&^gERz*odU&w2&_4!yRuSV68c;e>2UUf*vOIAv9pI< ze5*q&7~ZQ$k7l@1^O_#2?M!CRiDG!<8&n%}zyeNt&?!dQ{`}BK$$$D!tRrzj$w4Pg^=U6EZ$a`~O2P^!ER+qO+$gFxmu2f&7U1o=oVV7#dRxm@ zp-Mc@L+4?C^7^xfc?kVh4wYX0!XlE!3yxoZ-keN{skb?BL^~y}+Dbx8;z}=ryl(z# z=gYy0s6G)fyDT!qq1zlHbItaV_rqQkz_7N^?8Q&t$2-@Vsw#<`e7X zMW$c2j-0WXp*97NB+Emy8)z8WE}VQgc!ZPDbnQo5TfDQ{MC(A5ERU^lp?A3Q((1|} z_0-{T|EjkO%p{PnG5JrexmVZX!)3pRSbB|ChCc{(EF!RBm+#C^+2_ajs@ zH~ZkUo2xztZ8C@wUajc#*X`TL5i2hoUduRQ|9!taigz}V=^80?DE*qHzoX;c#%y&C z6EivmFJI%d_*FfNroMX%=T1-Uy{q6neNm36#Iu=$R#jBvSjIcLE}5FfA!|-*>b8Z~ z4= zSvM|3iFtHt#$NuoH1>rSChl_X%cRxNwGYNjE>G4z);+tp8gwdBCP;bk%HxFB2}u{n zGgR`Orq*vvnK_+scia5*MTuKV)G*QVX(7Ge<@)kxYVYXcYweZu(`%7WV4??X`wVDR z_8n4MaZ3&g3gy~s)cHB}Df#3!Hkgk zoyxuq8q;&XM!SRNsj_eNSe>iUp0zFk-`U0M zn|pYIr=a zb9gj!{H6T?TH@6kck&YWWW_kmpROsc5fT5qlA2*A?-s*$!zh7!w#}tCe0`7gW43#i z>-X#C*nfuK-DhOH`CZ%HsUpnhdxHUOWtB}091J(+l+nb;C1>#E=qBh z+U4DS7DF->5g$A?Jg@S^Iej+2ld$qDzOW)7kN(bKzBks1Qc>pfy5z6U1e=#BWZYaX zU>dP8n58Se-cdRs48uCL!%4yRnskvb$5==BAKrpgGLw(Ji98sr zC3!pXke*U->+9O{xkx$}{ewR)1(oj2oKLBnpncjR8T;d}A#%1o4K)&Zf2&3&1sp|M4fZu#>S5K4ojX;>mzxoLa*QVsr}$|^r*(fkAbwQ z^xjp$;l!r3L*zN9L&>z2ZRGtI9;{9u6fwE;fe10-q7^ZpQ)NKm{5Cz7&0+ApZv9uI zpXv@CHi7fzwpmoyb8@lf_X4vvQSlLwhJPzeS%3jL?7e z1lmA65X2aERAlunr?b3tZ7`d)>(+sff8EIr_9xHS9C2l~U0TT} zKRhsIFA^1oxFC5W>|ML<6>60;j_w&*CPuM_EV3c4A8j6MoecO?hnx)F`{Y@(%Cy^? zxo%f_BVx_F8q*mk`_t(t8nPcx$2j*Zb6$I@&6=Zn)V5yia}^vS*$|STGP1SrS<`z7hj&b zb4a57$ia!AqL(kH3@_R*Ue6BEljNz^rZjZXZ5DGGSgiRRYWK45I8iyBWMeOf!ZoEf z>ul)g<{_ENSF>FAG@2E(4b9H>hgBR4T8L+>pTC_4wm$inJvO=CnUolkFl)xfPM|2W zY3{u40x7={Afm|rEECFC7$VD9GM!cW)}MO7we2x^b0$=GB>Ns={`9lz$4T$L73WkD zNl5Xpwsz=>!$@ zKP?Fq_UpNIwbn8{4R@3i^Cb5^;7#Z)W86RCE?4T$oO4?vQIsP%%gO#3^;uAHgY4J_^Wl5P zp7p40X^HS@hdYy}O2+ID_q?2Ae5mA}2;)-^b6OA0gr0}529$9~EK%JIcKdcz_to{5 zr1x(%PvwpuR?rn_S6zwa%Q@%yd1X2`|Ug_@0=aHvPPWkozs1GEwjJgNpL;?g@#1oDzV1pIXE-%o5+|! zcZU|~!nZn^ek_Q7ujMM10}(5R4)=*hyMAZd z88MpiRNJ-c%Iv@_+atxW?+fBXpjhoLeZtf{NuDthe z^l!hLL=?6Y%Kzh8VbuTjtnk~N7v%E=zlf`Uxv#DXso|NYuWcQ5x#LFDi?-LsM9$H^ zQ;FvGBliWWW{mb=|a$QLHu3G7rPb-3#W(;fqH>E5CZEWwrHw+ zuIJ*_UeER>ZSw8s+gsDm<1AoIP{zeqteIx@#*8c3+w(=ONuZkc0?E~srBBvhL{2M* zL`S_Kef}5%-n|>ydulZ>eE13Bk(_gkPT+x){hpnBM?Mnh2dz93>Y*XKlo;@=@pXG- zNrp&NKf%byeem|w@a4lllixgreP^v#g@n3d1_#QkuAA$Oyi^{#-_-D~r`k=Zs4kvB zuJT%sVwdv3m?FzX&jYG2=x^FdPl||)ypudh{(AJV$y&Qkg$lVIcWG0y+dGopdH1y2 zt%Zsn5pEMik~dqlU;9r#-sF{J&<)7dFq)r>zOhQ|;KUuW>P6srlR_r5Zw2pTTfbHtNKtAG8+Vy-}aNUUv|w$EQ7UvlqR`**tXLc_E}^ z!#Cpo-A+GUiNA;A_Ct0^)HW9h3;n(FBP{ekt^6!#t2!p1p=?+zxvELt95?!Ld7-fI z9c{j1EA+6+F!T^BDqWtS)va$LFO_NhAVKYrYs)tW2iZr802&xu3#=0DH1TRgay($jzIGmRSe zn<$C>mKm=&ZjY@WZ6#{;$k8SZyGPlYA(c)9IqO(VRp=;1HT@xWT`1OtLW3H{rPCpF z=HcPqZ#ge4?E8?&B)XIN$nu~28@1+qM!Z)&e11`+Sm*G3+|8 zLN<92MWvAA4ePR=pI$vbM!8NNqU?3Y&#}i12XDUt<9ysfwEH*pQ$1be>bd>!Q!&9n5tbE)~*3O4ZoFI*- z56N(oejF(McD*3bnuVCgxAQXIq3Q>(>P2UY`lms<55Cc07QFn(%Fca)VcjkDyR-kt-=LF?1`C z8h=z?jT(MjXZxY2zVK(YRFDNhA&qt*DBSE*!HWUr!6x@cVn`{5UCWA9;>W_P&IZdo;wrbUd+ z3bNl{^Xp;JBEdJcsKioW5LAN7~70N(%D~5 zqx8qRJv8-jOL1k5yCKk3Q$cf2=-QQ#mJMI(}U*`32&-_wA$ZYeWb6Z^Hk+PutHJ!C^aZ zCfwOEt#!@GTu|NE(p*s0+|1fo%JC}Og{=>^Y(1MKEDE~_5!7^aHFh;;69Q*lHg|Ak zLnoQR&*mX#i&&zZYk5LB0uV-wUezv>F=$zFApKZmXgMSoQkA}Hqw zszbLvI;{zjkbnqEgJYo4g$?~q#I2uz`Dou5_rX%2`@b^~Z4L}$+i&K;wmJZ9BGw)l z-iNaPV|(EL=pNWsci`KD|9z7G*dFvgfIn^*=2Iwm_iKBJ;=jLNnAcSQK75dvA-OYt zP`h`((C_&Cqkm9;-mmQ!)&2MVBeM0*(Ld}F-X7!F@r?iJ-~V|0i2lPK%vXl-#?ST# z7XSPHfnr`4@cRG~-3A?Q0z!Yuace5t1&c5Q`MX6>p}*$D?a!<2f=MuR#`F)9pxd_+ z*GsUiUv{aN;QulS_E#^#chMxocI!J-28D0`i0dW97W{UpmyrMJCG$Ab;PGx8X7wCzR)PxSW##^BlSKYy5_&P?w;P9_ zDEzNY68)D+n5-mzFNxy${Qt2@Frj~$B#I7B@l1l@hp_*-N!w(SgKv9{_$K}73BY!dP+;h19R8Rp zVSf<{41u@C`CpHv9qz#ECB!z%;KmYi3z)lf{}Bx-dGaZp3-q9iEcS{ zyJHf3hdc00LPtpWo&X&G`}65v=eXQOu~O%#((TDA>jWSOFLY=ZPM-$3gTZJhd{3*;ZK!_UCdP?FrShB-8n(* z#GANYLWg_1G`x4X18*!LwDSB>pR{|KoWHxx*bhHx9Y8AcpNF zNOThNk6uFl6~`g*U-I@}_tH*$gx5=$H_GApOGq^D?9y1;$pPY-1mBLzaW@XV zd0>}JLTs-F;+yp6REgY0LP75A1Hd!sFG4}0*T{CMmr&c8QaqD(f;-%e+r^*>xf6`w znY2TEIFq(Fs{i*93i4k;6LN?6a3<~I;ujJf4gEPU{k8aoM8_<QA{5MrhVTgm zg^pQv$)tY~3g#mXznQd)i(jaJ5enu-+rOE#i-|$hzakXOYfFDK2|b_h(v92k{C6e+ z6gouu%_MZPZkJ5j$!_79w6h|Hodi(3xYC3|FCn2j1ka?uR+>=gg`QpNrGKToQ0ToA zzumZ9OnIUHwRHjW9OiE(p(puW>ZO0ByijQR_|2ritFkfSbU;{<$A{!LDvIWH&14U=EG$ByzDg_kn(}H7c z0t2&k2^^zA2mWFQ8Wih8V78-ZLSSeb-1>|0l400D1GB{d{El66fT5>2aEzUPU|7AF zwOa5ydVv)D#Rij@r9g0n*exD#?7j*(HVKAV-T~#9*Cm3#nEMXL+K)-ugK}&;nB??U zk73g5m^7>=1e5y&f3f>Z5ZHb}V0i<9-MfrQB7yU;3-t(WXJc{{;CJjERRnf#C?*8f zgka)M@E5yghKaDiF;*`omH@}tO>RiE*9?v^&v!$R*nY=2WttF-Cj|at`yGYt7Zf&d zLSdJpFq8t$!!FpPu>F9-x}_*=Vj6=@Flew|&qX#cMz4S^?ZP5>ap51kp};xDuEutb zmbfvxoj}DRek(x02iNwtdBL;B_U3|`2th4PK}9pLPu|+~+Rhed{G_iY0)h@R@JjJA zi<(dr1d862D5wb@ImH+c{)K}94cgY+sfEA$MiYhr19GceP!ooPU~V<|7X^mp@3ruQ zPEEKl7)F>{a3~m&*nd$FOav>a35P+jFDcf9!y%YGI6D^LzjaO%fdoScqW}SeVBhtr ziGV{eI00QF0>%>d1QZ05;S|(F3PCUc0w;iu`J-ph`^T~Ut%-s`Fw`li2_AsLzzzJ1 zfMCKlpbH5`8>R)MFc@f zFtiN*g+ed`c}FdN8cb6Z4#Cinpr$ASf_?B%Q$!Sk*#-fAg+eeh0r*!4f}vLMFARdg z#g1Cc-fGc*g623Fmp6G zfPoUss>fD|Fet%}0w@%;j#>J^>jM0xbbzrfkfBiqDg!_O!Q6Hz3{=K2(^d&E1v4pa zH3(YAL=0Ocpsz4^!D|CO(zmYz0V-o=GH^aX2M}x<06|nR6I@i4ly_dn1MqP6bV|!B-BA=06HLl z+$Hp0s_m;of%7rh?yd8|HDJhO>j0?5Fu>Nq)*OeMa9ONfQcC0|a|P zVE%?;($_!}z$Oq}3DAUjdSa^tG>Az`Y#o3GG2R2-b)&JdZ94cIFcd>|;Cz55AXv2k zl28mLw@N_k7)IYZ01aXukJvf@ZD3rJoi;FAV7J>41!^&#B{*LcRL1x)TL%bmfStgh z0DeHQt%J9GLNV04bsA_L^Y{aP8(W6r+JFfOLx5l^gO41811#iVLVzQ%pI_932?3VC zcus&OgaA)q9$~;!`x|G$04)K*ss(t3;g|^q1!^(A7tjO+YB39;c$)C{&}hQ8sA`+5 zw#aImtpG$}7>EK*Fc>Jo&O0ywYam;#PC4Q*f|`0V)QvRf69-zH#D%C@gz%caDD5DtJ21X~%9CV0LTdjNn7#{d^k6MiZSxSrsA z96aG@M-*qqmIu4-!UEES{|Qg{Z}bZXBnt%FG6EQgNm=2wj0V>BH2`$Map-~rYy-ho z22g`zpa$GzK(at^CBSL^lVmabv9{F$R~C-*W#Is7K(Lho$-;52EgU$hK({x2~dk6*&Vf*ZACb>2tbQKFy|uxXo27kK&XPFQUst< zAX_DPn$W=7)&w{bf#XO7AY~v}O;8XkVKM{jyiwHo%U$01yJfRz`<_I89q&B#u21TY)6TRmM|`rpIjqfpd$%;0|;p z;7A}?wZI`p;2dHE04@+*2~dl}Hv*s-$W{qn8)&NAZUZ0;fkPMq__RQ9nuI}R?9fI4 zd;`Ij02CuICCxIhb zB)}_>Kh*w~$3cRW4G?T)0BIx+(ntVNAh;5s7DK0a2BHDEecb?+NE|AW0F^*+m4UT5 zhZM6W1NLS3*2BML+tqE`|634AbfL9<`O~8pp;+$wCAZH-B z5^xJJtP45;z#7Q!ZD1C-x7z@yMB-411l}$Xj3yL7G7zjaC3ro8c7wOu0PZge2RRhrWFS~gz!yg05=bZjYaqB1&<1W^K!JGy$RBN>1I_I= zfY%GYf{m>Vkcq+}69qE5KyW3X4cxqd0`me8TnT6cL-%;sfyUH!8vu+b92ijmj6krJ zk)RD67*W6*2ZAdBYH0<9Hbbf@L6o zsQt~MMgiv-2(~i7ISPk!6bO8Q;7ULnI9^5poCCp?08=nC0G{b+>~7y20BsZw+9<%| zK(Lj8-;Kig-6#NUAh;4>*Pq@sW(5_rKKtQ8Pk2@)Lq z(b2+agl?+^KD00{H!KY39>`YZovVYQnFxD6dUxX1tA%9DT}&@qJGnYuM!)z7y_$1Q zK}B6&MnK)z&e+x3!ST41qn#PLR0_O!>B8}?OzQEicps$1h1f*l$cutR6k(TCss;Mu?y;Rt@m`fL1Hx%iuLmyn-%H#-`?i#)2k-rh;aI z=7N@j)`E6|_JR(Aj)KmDE`qLtZh}|&FfVkHv$ivbvqAridNDs>`{dje6W6WxOl|cI zR9X;JaWx0M0y@E5#@y7=%v?~#+`$sqB#fC3B_v#2FPj_NL$0RW(Dv3kH_Pyd>al8Z z+nsTy%fv0(!ZP>L4kaXuxzqB#muVJMPlicdjxktPlpx(pyMM3LB&7rqssCp#QWAe^ zI$D%S>jM_Cr>-u;#l;VYW(?H68P75{I9Li#=ih(o;5*?mxh667=-ah4RG;*RQViTP5t01j5=y}HDf-i3bzp8gGNb( zDpsW#C@Ubvq#k^h4nf-NH%~{{{30=_OQWRnIL?K?_KT1`*P4Xm#WdO_q)-Me!t zf<<~xAyI)xBl_pHM+91FBl7j?RSJdLhq}jY-c>c;R%7^@t@+TOAjK#xmLRI1l22w@ zV{;86896d!ax1VqZvLQFnr3WCCpRT0ouX8KqTj0P71yOW#H{xw)P3FiM=^vv^By!Y~P!k@HRy2u%~${^Fpm_2@VC^_V;?N9@6tu;f(Lf1l% zgD6DnjN|c>jph`aBw@0;wmRpIe2`@9UCB)>X%;MjCK7ztr(eC}E1L3VsCW1(Hl)Ly@GH(sCpHZ4bA zF@H`>to-}M$(3eKkApo!W*-$|H%NT;omjY=cGHXvae9<#57h3^hE+%hlD2?|w|dQ% z#d2B6mgbfXnfXi0R`a>o;sL{p)J?HBlink5z0hZFqB~>Xmqc@8{a3cz>F+GThQG#Z zrUfn*53QVNZW(_&KB{|Jm5=de!NdMfRtHM<*{@27?^C`{w257p)Qn zw|TGR8%IlDkA?L}zAl03pY{i$FYvr7pwRW9s(<2HX@8qMYW5DD4Y5?uiBK`RC)2JI zi;pNqdJojqR|NDbw;q3N5GQ-!^8u$yHTTBSXD_s`MG>_~Sv2V`?BfxwEV`>hWkRek zA0_>2TKv&RmWBfsXKHHslUmrMgvncq_I-}g8-|MntUo!(V((KHlOUmQ#j$>ad-;Qg zkmiE@&uf#4K0)oH2}4msMTE6X3Sre|ZLHeNBz;UCZ&yUx=NIyvk^46Yg&XT%^F8#Y zZgk&#FM?1D3OLQvWd3=dlOFj2NK51L-Q|5>Y%D4SmKWsw;sZ?7=h{CVMlF&s{k%20 zP?+5#`tm{4Le8PCvDews>(S-qCyfZps{=Y_lBeF9M%+BcbGfQ(=CnBJ46D7ky_eB3Ks#pPK9=0Xl(4Y;Lu53|-~U}jOqXO~Lw;teG#Ss; zbGa2h3E6Qumb`5a28)b|x1X?hrhR%N>EQe7)0OK+XG$*T``|N!sJyGtSQafWAq7pJ$G|;G5(W!VwA7;Yp}( zXOg)g#bo_s0ej)N*ii_UYLTcb-gYlENSv)+U=fHeyPfGwdRcZmyVSxeIWkTze(a3?jhH!ww~C(945icQqi)^$mGOqpYUqz& zv#@6BejEQ)tI|(yx}e0~`FjDqbdsewIYcrxrtD+Bs}3r8y!`VIj$ahPx;2E;`7Fv; z1;+{1-flk1=CLyJSmeIi&9W)L3Ln2grqiU;l7L*VD6C&T<=;bjZY5*9kM{QdXb z)T15zxn&P0%pZlgr?0|SC7vJjV76pBdfVdpp7$cYN~vMg=68h@i02`0uostxMdyn? z6n-H7uI(iEZh}^)DOcJB&Si9TpNrk9`LFu}%%ig3UQrwR+(%p@771Jb^o>XCZ(*;EjhD}N0%8BeEFy7rYLNobx-DK<{z3dN~Y!=o?Wr2RU|D!!!SA;37k3TPIq0%qNB;Xk8QaogbKcW>gj#wv{*! z67YNus5Z^@dHhO3PfX1)lx(od{1sWt#OBS$z%O6lej=P*ctjdFa-Oe%Kdmo*#NF-d zW!4AUXB^G#_?775I*A!)rT2I|W_Wra=2W@&^{;6cR)h+^F)Y%=tcpz+u9M72`hVnz zGOc70CaeAk?GCAnA*!3QLJA5^k=5_(d8D)y>oNUEf`SqcCDy~i?fcu#?!va#)3Conx4-<2+l2rB=U6JMscQV`SYrG@eD@N> z8o)&q0`4WqH{iLKz#sn~-Amvy;=7l}L1qf)V1gx;|D%Hms%|@&JFex9W9cM#8SPqL z6}%?s@w;>RXWki#|2WY9gL8?F0PvhkZEb5;npwKICKQd7LO|wq5^C#CQPp<;9ClSQ z0;RF{djp!=Mn|toCohy$Mbs;l+bLEb8^2pMu7CX2q4DJ~cSgr)BPMcXD=Ga7glL9p zO!TUmb&^G_ijS+=i(~S>a$g#MeDeJE(w#N+PGy)}?tt(kACBWQLoMU|4>;~q$0_(a ztMgMcXQcwO`ueKkjP&DT!*4HeMajReM6d+Z*u`U?EbjZXibnmr09(lB3 z*|0M8OfP~CS_qYSJ|&-=tQ6;|57T8wgCmRg$r$+WiDS!$@Fy8IXO&Cc&hX0EOCu3M zt4tR%_lh-8FpgB6i$BgtkZqq(;7ubKJL}spN@L_DUgf>jM`0OK;U@Ge;pz06nbS(K zQUsZ?9C?9)1(clA`QKVKL#dy(wsNy)DM#|Vm1vmV% z4wTC}l^^|iNRyzIDn~|k!Uh^4CoU~6DX!9$b#K5&ttGUO0P1j67fP(|HOjG z0;N6CkefcWy}zN-qlaNN@7rwTH9h*JmK|fJ6vm=p_3xID(vh#DGUYcEb%&oGZl6Q2 zH_beCKG^uGNc>+##Ii6$b#Y4>+V*}q0J-An`O15T3^xkEfrPlY_ z{NmwH*W?8$8DgFYwk(o7{V-8fQI%I#R3)li9#<1lC(Lv109$I`$XnYLJuy*96HC|( zpK>?TO@|}Jp(aX(ak@>DF?Uqn-p`57flW1yPAPjeeWX~sXjn(qL|&-ju5@N2$Ir~= z#TDbHMK0|J#&g9dmk!)spEWfZI_7usHc7GECEb`7KAspvu>W3@K%u+*2t<(JiHe2= zlx^Zj=V6J{4j)TLC4^pkxLl$D#+q~J_m z1*gSGex8YFyktF89-i1i#J53VSL-e!&Rdh=N5T1Xgm{cYD>GUNQo1lrS!sJ>?Gx)E z@hP6+@{y;>gLgNMxF4hWG|o)RV7Vri=;O@8;`WuWmPRHy^B|?P&Na_!ADb_Gt!yhI zl8H9D?i=POa`jkQLH#ZEjO@9kXMKadjwt|k^J)c?QQJx663Y@*m-wZ(h{5-^u_VNP zT?wflS1;K6`49`~{% zg~>x_$oPI07+o!MzZ`mM&^)AL$m+)ADCx9E*1(vo3k7EEkhddGjPuWmEi9WAjb;;)xVi67}>3 zr38NNn6L<^0u4oNQQm#jmU@&*bL$>n3m=tgB7DllHt3@sPu$f}?;%q6FZ#xDR{MF& z16C$C)#)0N;GAaauW}vJ9Sv`?^79GZ^n&cjuF{E#T&(mmXL+>5Fg{{YHJZn&@}4wd z{vzZweVx$0>B%$NV@oLmbO?Bp7l_J}?Rz0NKt zOO$hptnU58agJdw@sGbok&CBKFTb7ph?v_m*%mo$Z&`I#*VD^!zWAWUsYpUu=A1}H zWVH92n;RF7&HB;R{JcmrEc985{krl|0gbprRpwoQGH7AfiSU5 z&;4pWW%u5muUW@D)UzkS?RYXoAp-)ciCj z8(l8V`0LY_IZ*>anRn#WiO2%zW`mv*&fNSc9&cL*`$31)&pOgHBqz^n7CLI0LKY}- zjoX|yQ2(dur0ktOIR~4s$HY8Rp_|l2?ySuPjEI~tZruu!_T<8;inaC|y2!;|o%w%?FEFqXM< zaO_?_!;x#&Zu@^AMv3TTWxTsseHA`>HJ#wD(YUX1aIkc+xQ*w;wp!imJtyF?rwaZDM+IRb%F?MRtthTH*_4^EKGFFXe$&Tz+3yn7=!H zzm)1O@~XzPAts%1FXOZPjKHqV#M%}1mp}L_@<+3UNb`=HF8i?v(JnAFsAZSFfWPP! zp*5uYcz)jsL1$p_V|RzW>&H}O4ETy+3B31hBvUJzi*F95m7FfA>pk+|xwr)NP0e3K z)py*^CCAd0i{8I*{S&EyWl7nvKa4FFa+cXM(L8K!YVe!2RH+!pO6+xhb<@|@M-Han z)40?z!e3ROaJ*{-Nf{b&mXhk>?KR(4F>m$9FTmYk-FQ?s6CYA# z8TwQhW=KYTNvL7@m2U9U+4R^q**U`J&U`xl|50|1(UC7|){kv>)UnNuZQHhO+qP}n zwmY`14mwH4dDG|2oqNumJM+$btAEw1wdzx?{rvXc&qJWL@B@y`7^!3ZL+SYTuIi~{ ze<1Or702BPKZUcG_zO>FZ4Y`ov!mD9)>j)j(lu<@;P&VEwFc~Ax}1%CF8qzaC#GH5 z!7rG`@L>GiL1pdIXvN8j$|q#Q8A37m=EL%46Mp z`ZyCDCg=ID4JF0E3FMB4LKoXcM_H5Z%^|M-haKio{%~Zvw#%c?l!8FwG683&kJW+t zDqNc0(>CL&JWB-?+ES-=ZP5;&H_`8dsM&M<6iVDC7*&9}&{qZLqKNfT@v;Mw5BJ?b zpUUSro$D(3r)7GCJp1Y&sl1Qz95Xt{E-Y`ud1*%bn#t`4NdpfP*X<7jQl?+3g=lTv zYc@OB%>9>Cc5kpV5%$OvEW#2+NUhG7W=%gpb1#=w{@vK}TT=g~yq{UR|2!W5ht=}G z!QqOsO22V9pR=B|qllipq0uK0x3Q4Xw=}bJGWzS_@;Mz*|4v-e{|@xAu`>LFi~n_S z`Lss=!o^uX?caZL@z3x6w}Z>4uzLkLu+GgMC<5cL+fa2Z)8MkZ02l4>ttEf;Kq&8A z(I@>pvg4-7tf6!VK74A;+m?Uq7BpOqYoYMkka4r!_*U%&<6=s+dq&n8pfX{RnO@7! zJ~d+_9I9-x)KJbu$VG~W=PS)TPfO@XW}vHt`E2tTJ5<`#4kK)kDKTD_rBl|O^Dt2*`cxKu6aVa>a8Ux`k74+YQNk&di z62`wnE#)dqOt#X}6wNnGBT9lP7d$t-z^KoZ)?%6u?^K@a9?E#$>BvqvvNx?hRWGI8 zxARyq(U~7gN`Aws9txtjXcSO?E^79HMF82YinBmv7cNuz5?M)3sX;xF+UC4;!FDxs zUjj)G3_+|PMm%Uw5D7uL7g{998OKXShy+OdgOjah-Y7m|?vQaAUaLdv64j0w72MD^PxvIg{_F`u}o3(@FEP66L6vHp|HmU-NbrU z97ztjC&w~C>P6jI(GL^RQOy%N3NB`;Diqa&C2@NXJPxSCr8_F3_NF(NavAI`NZiOe zyN$P6BdY~U_HOUJuLFaE_wrbmfyU zBS3qfl!eHA+1i=FR90dy_o?qQtSyDolEr-*U?7<`D#R&$t* zr`I0%H5aItF{dDsopG9Q{~y=Xq7onvcqVG!miJQE;4W7C z@#Mp!YwCn>e}NOA1fcD-aSP{{%tH3h)pWcBc32v%RXL6e@8h87$%TmLTm$h z-~)1J19ac*kC5#Iopzd@-2Cbo1l?wgfBVL@KBjLVVA^tqh|mYoits!@9Q*JB+4ZuO zxe%HZPmB9=H{Er2-fw5jE=^B7jfkE-Q46MYEaD}{QMEef8>QJfuK6pNuJqs&OX>=+ z06le!=H*pCPCu8FYL+>ayOc*Hktun$7w-E#W*U?i-Hsga_cx0h0tVtoFEfDLV$YRd zrZW#->k~w%T>S|>uN%KmUePyTwxb}#0X%BCplgoh2`}KI9 z<_DHGy5Yt0bMw6LjV0_hxU3ImBw``m&P$#P*2fIYp#hMKQmZVdm$M`tX_BqV)i=1p zqw@cdSSfjv_hA_>?uLH{?dF-Cb*gJBAA%x>Dzekx^#S95D?DnwTZ~WQ>$?R&fQ>JA zl2RMFoe3cMZhl#5)4j2&z!NHVOwvuKKZA$ObK;J>-f2j<0un9(B@y0hoJ*;pVpJ)Y zGu{Qm&Nt!5czlLMmC`HpJ>7}3%zZUZ=GW0x9*og>)egeqoc)hEwg_%*PF`zT&>~%0 zBZ*cNDk%nXMg1yv3u0a0Zbb#XY99%#R!xz)hKA1tpTQr8SdK&oAMG2i6~!@L(+iCpFzV{47vXF{ z@jaXbUXb@Jq$0#)eX#9k-9G4sQ3<+ht!Y03WY2&Uu$bZpXV8)SwU}t+Q*(pJ~fz^+A8 z&5X2GiJPtO(3>d)GZ~BJ%trDyC{Z>;nkYe@Ig|bhxLOr&57mPgAtQI4VMy0q?=C*q zC`7^qao|Y!+OpdYQ13jx{T6uX^tv zGv~(;wcvHEA#|s~0|0_Z|P0r3pkNJxWy7PRA$+#MjCMz!14BjIZfvS{9c;BQy2C5zXR~YQItcUqrK@k(JrM5zU{FoSNY?+W6Ts z{GBMFXZ$y+`S;uZgKYi`NB+0G|1(GRFS_|NQur6${AmaLC-47LH=DZIni^Tt{(t53 z=Up*c2Qyb%ep&%qL0TbNVOkMdSz38o1zJT~<-ZH-ez!6Ab;PUuS9WG(VrlKEFWz!NC}}yTxo$~$O^ln`QfEF zBI{@Bgy;5#2*%~)SI=$OU)>F_(^s$4h;qtkiK0aD)W4wNRnPY8$*9GvbTEselvyiP_JwkuX@MhKzz+NLF)|hDlG@T;Sp1Y1VpSw{5whvKX|dyaeIQppr<~#PXIp z?D(KSOJrni?ZlJ(f5NL>v`l6=XcvZuM=6!J5v$vu=ZFJE?7k+_Lp4d$M@7t=vL!u% zqZi1HP~3}0sUHth&)Lak(x@R8M9SNRM`8%o+tLR}D4QlEvg5Ehh~uEw5Q|ajvvmb4 zlp83P)%kneete5kpCPtjKHv`9Ku~zc%+f|LP$D^J+ne1s31buX;!o7Ru26`#kVY2K z9yZsP53=0aJS|8x$0<=UJOSmIg`!a|lTa4=5~`z5p;mzng|AeiIMVZrJ7At-PmEa+ zYBN>~FzMHmozEyc1)G`?#pfP#a=zTM?#yYVI&((P6N~%LsIMzA@$k zeFUq8epdo2H@V$=_u3A+mQL?loKhNvf63GkuH(%)n3Q) zN9V@vvy2KBRV$p7t&~3sjT~{_Le=^bV`{PMj0VRLTUK0~18{1SHE0{9o2whU4fhQj zdWCH``dP-DJFMcYs;tgOhX@Hpv>P>yLN4CTSOG|fUIjYmm}=LE+Cx;tcLaiCFhoo0 zC`N0omo7!SH~SL^bqm?gGdkAtj=0Q*$e6lUJ2h@GSVQ zOfaV-+*cRkgx%U|@+F|BrnCX)eQ4QW{+qP2Q_K7(r?9;V`sg6R)r%vu&82vjlF| zatd>Ln^-uAts~ey9%MtjxFhbuuq<6nIcLu_TxBodZpkvnJ1Ig?>!)3dn1<~ta|E&S z{SgmX>pLYjxClepN^md{m`-2U-3LFQ7ZCQ=D=g&0NH)GeX52wYX^IJ(9%t09Kk(#)>7Vw$Lh%v>I=Ka8+tnf5ILt z>@cxudtD|$3AAd6MGxdeOA{XOj_KR;5{-k+x0&e=-!<8ZCG}0deZNWpbF>W%0U39% zyDuLTxFefmKdCbP6RwqO_Hn2BZYd|SiC-gi!GKbF?gJ8uXOYGGBlV~r)scF{@JbTR z{4;}Lr%qd9QI!3m{q&|#4Fbyfy6Yx-=76dBBNon=&^8?h^})t#MeWg;F(t`EoQAeAfv+ z?2!gH!GN7))wNR!E@6NYx--_d;2V9yx*gCZEbDYDImLGmo*udUNh0=`;OqvrFZe14 zgtoiI4@OdOdw4NlgY-ehCUrRi?CzRF@r^vCxOkp#L z5;&pFK~f{xH#)LjkrJnt^H1e8}jlx_|`v~pd~vO z6=q$%xI4yphw0t5H&_o=uqiMn0e5x1m^Hive8hJQcY#8wWo#Y%vR#N2ScA|4E>QX z!1V%YJ6pa0lNQ6CosbkGD;?r&u6KR#KdsJRR+VJuf}gZk8wptT*D=3niC$2qg173} zWA>jwOEQ+PI+=PXDc9i==QD@JAqsCsKW5qSyWk+PdjURah zJ*K1Z9E9w_6EoMZ1hM&5ZZr*Ph->QFzmU%>2;|AQuJAACBo}@H) zNM+Hkj)YjM6s$BE915W;{{U4*(3(f)J>MplsJ#f3#$=dOGfr)oWHw=o-?{pwL*E7_ z-4#e&wL`et;1q*s)R42GeGlJnSka=pS-?(Tpp52?kXPwn>A%6RIJ%^$w4|J3t#mxr z>o-O_MJWuvvfjOkyYf(wmf&f@@>ZC*IhSNufWm?=R~0J7wbm$NoDJtgf~zG-;7wEZ zfY4sJ22O*X#i@v2Rmq{SBp5spR#@Apm5!5fpx3Isvxj;@Ub^i8q$K8Z`-G_h5^N(K z8qe$-O`=aM+7{+RaZP%_<#VQ2e_e(iP{MckHh><(oSC3)UiL%im+X3S@gTd9fN2@y zZfty8gii_+FO*l5nUE95c>P4w5IGqnvC(kRIdj;J8g!7gyC4%Rwl38L_7bx<%z;F1 z24vb*_Yx?zKp)9aTA;fZ`WbJQh{trZ%RLv*FL+1XtZ}w1^`;`CpQ4=54QU$@Wl{7| z6+O;1=$==@?46LuJE(?_-*`dNgbLcdy~um)eo20$cwOjX;_JQ0W~};!h&g`rSS`(9 zgL14Tlm#U5zl(RqYfqol;e6rLUy!gpi&Xq$`E>;OpaI3hG)Jw`0w4|>1sXSqjd7%_?Y)l8xU~hYGaXg}4)Lue@_o(J~ zZ>V8msg*<;U|)=M3=c1PDbPshJtl79@(CWAj&a~(NTKVPlU=hRJ>tn;_->Z9j5Nd} zb&B!1I@pQy(Tn~hcgAKn3Xe2X{^msFK8|~(UUG9j@|+c_223f zl=`yLa~RZqZzUVS=$0xUKtj0kdOjf=Ewp(=nw$BESm@N#?=$pMDm{_t1PRet6p08>(Xdnm`dG!4?r#;!9^>EtAaXo&s3O zUOcJiPVBm0uwFnNT+A0$m`9l5J7h3+(D{TfobWvhy%O$70VaDXHwS?{Oz7`f$PJFr z#hFo8fsl~>Ob&SJ0LqgX=(7(k9jrmh9#VMon>aJW_^x}DE<4ZF%Fa3|SRuxpZ&uh- z;G(!KRcT+7+W2ztR00Fdlkt`a8=G<>U%rmvA%Laspr_;XhVOELjwoPku&rtr%yhCuK#5%#Gcqd=~TiE;lh^w7406oluZ+#OPHt#v2Mz#d^B?N zxySVIAPA3q)Ap){*`q?X=&q$`xwfe!hXha3xN?eInszpk_(zOzP66zf^W_FZP%A97 zXC6xlPux#*8J|l2gR7W=CD};A0w$%NHkb9}DJa_{rMucK7`L9T?;aKx9Wglxmv%ip zqlucW39=qXOs_YzC!W(BIxV7#+issTfaBTM>xM8?6nzpHSPdi$Jpd#+!=-OOlFnwV zu=uU&!2s!Szb^jk7j7>AQx!n(yec?& zYCvSjT@v-%kE5T&FXKNa;=(}J_Gxe=xWjyeW~twcp83OZVRKf1$?`;Ge- zeJAy|T|1z-Y(yB>F}Y&MMdOS)aaQ!QI9xME)L;}VPsugm!Rly>i#YV18$xHBtpqWa zl=o7YOFuX^+axI*2LRl|V?7*~vwH6FP*Z;i0s^~y_ z1m5jCtPF!ouZq|A`3Kp%x*M2_QHk$hY5?vR%s($i*MH3IAdwnlEIzvyFiVOGd%mXN zF-v*ZGCb{p-d@oo#8o==y_hYJyNnE0K;3YoYAT57+ev5x*q5=zntYY1C(j!b?>dv3 zuGZBT!IkU5QEvFoFGeUVdif9A66FyK%KfE|E&Z z{kmU4CV%*4PYLw&3{j3@+gTyNBjUwrI4IWbF4U^SZkS3Y?ybK+`9w0ycP^V&u-5)7#LG7)szTPrvX}1sO&K{n=9YA$y5-%TD%rj9`X==q6Pq$zMPyAd2ZNu!! z?wnwDcQXboQ_iAcJvm74WU|t0C+2+O6i6|NJw`tX%Ia9b+988#JT0 z>te&KR|J#L>3Lu^)XyVi=m{~3t7t`FM=;1Yx z%9E`bn|LLCwsrGkPiW+;Skib?mwhVXe)3VO8lPECR`023$bRPN9?n&{ zlax)+aDU$ZDvQD_ESH|b!X}=An^lvInSiJf`=w+ioYmAA#h4To)k29;!X6zoBog8t zi*4NJ4kO1m&yUYO{I>8&UZD(QJmxmPSgvkC*PIwouZ2m7&HUqI@3FZ71Db4F}zI`fgk?I7g9f&T}0PC5gQRtiQr3ItIP%DivnL}{ ziyakkOqog#IdtI5#$(VkvSQP(n5{V2f|QiZ@H$3F#aPE~<|*_J|3q>o7)GG#t9FHf z10#3#yUD`wIFlJad$`(CaZ5&gJB_Fe!bAR*66Pai&fqaG`?RHDn;lHi(6ZCjGNu_B z#NYYi^|fpjTE28TmuU%$G!^?N1y>k7r=tf2RV%4lV!4A%2Mq+(IUU+q_NB)~T$d z9lQ(wEL#9vcxhFTT?7DUkX!_e5S(7bkkLJ>zTI~Ss$m+xf?6);dmj+5zNcLS+r+R* zs0tnogT~fKmYXS-BmFQSmH9Drf^#6T+dL2%6YR(UUjHooi(MIJo}A>T)WFs-4RXK{ z^nqGn=W87Q7hUvilN}(qLi&e6yY+Bshp!gDCh6%E@}+30X~@zts;P*Kb|5$*IQanW zcHn^Vk6zn|S4WJPg@*gz$R}~w5eHS>fn)H%e~KL-bYfVDG2_=_1Os|~;igCY*bPjg zD@KPwMqiz}+DRw6ijcBZT|u%KcMZjW0HYTp1Mr7L)wHeE31qkSy9h(5k0;u>a|I!v z9J2vI(?jnm`23_;{dEqNt=x}XjdA-)!b?UU!68c- zQyd#@%09JkxRkX}$Gj-fftsVi82*u%40bSrdzKO}1bxsRaRP`3r(uM4C=W!}LIN0R z^0c9NVzdHOzrvgF^3F*ngWZ^}XQOb?yTR8ZcmRTWf&DDmS9CL=>tOY^cL58N$tbDY zRBD2BBWP%O3feecTEF(Qn5MFmaht8Zh9X@ElYvvEohzadM0IwMyi1gYG4}GJ!58xQ zxYiyW3J0U^@sSz#lTaD^C%TOFF2wqk>FSjb?R!@nP9L z2ia8_skMf|tFa6zVRo5w{d9+(C&upa_V(UV6!ts~Hi8G)%aq2rj(g}M;rr0L6}+4;D+qA<%o3b>G7@&JalEmStQEnAzpHu}&nS#)}i&(2fbK&xB%Q77)wQ{nYKRytiK ztIb1XDPrO>8EiscsajVzcFXD`OZApdXaF*^Cm~Z#9u$;VGRZl7CEpTro#rk&j2FNnPf%TEn0iKvNyvoFHa-eJ0y`p2A;w*`B!kHxKMd44BLOj3DI-ZAL zY!scH>ulk3y5F(J^iB_gmnDfwQ#tz+flBu~i`Nnkrpicj0jNL^7m`(r@#!=&`&Ibw zyr^AWCprm8vHHLlioHj@@WA-K8!o(Xd%;wr->x4okJ_Ufor!w2 zryVj&FIUJtd%oHztwbHY;IUY~hH zJ?(BfNE}o4W%%On=uHG(M$edh~@0*3H_Xi8A43p7h=H$HRp0OIrbF0PSNU+S>%0&DmWt zlXEt&bV)#)sL4pZ)MD@D@Oqz}4W7&N!Zm8AHcuSgsUT^k5-ed^{!ytr=yZ=d<)N{u zAuAx})-2azgeb0mZG^mmkY7O=Z3bTBSi< zHiuMNLkGE1@|vP2(A%Kuq4fd8qx$5nq-P@*5O{fkw5Ig zE{Qkn{x_eomAgb$ru4o!6@jq#b{-!%U|gCD7_Jk1Z*S|5cLOb8->>e-(6v^wWJhJq zB}u28-D=HFQfzJQonYPSx2aOsSaAqf#}$S-+{U!rNntrYa5(Xlq{oB9Q`tq4>8tLC zb7T7|h6Jt96CAEewwer(BexEzG!r_stO6>8SCn%K~+mxwW!aec>6pz|F-Ov|_p93mr_My!UY8 z{%ljDgb~{PbKgzD_^7Oc1}$ayUHU3$yooR3@P=3!$I+ODoho#4UqY+QA8&Z~TaIUO zz(T!W>u*h`XA^(QIT^@8gwIGwO{>;2A%fCvsB)_KlT@a4DR#Iz+iP>C2OcGwWxz65 zsDEb$Lkc{ZJ1XF)fWzkT+5s{bA-z{Bx1U<3U`l=}(W=(+EKPEbdpY7HZdEr)Ied>f zw9_W>j!K-bfN%u7`Q0x)wwdajn`Qmdb1TB1V(IZ->Sap37olqLow9H0F=WyYB z3~n;rH(!m9@(0e zj_6rEwTqfle9);v9WphLMm=-M6_CT6Q^Ur27O`QEZVx>!e@^-LTg zJZ`gJqAf_**pt^@*MUVtwBUsS353jn^3hk>94wXN0O8#4{;_O&=?9UMrRbO^9lw_G@8}D2LrWg0{idKQ>yevVi64;w%`D(uz1P zB_Fcj;7Gtl!k>MPelb+=toI;3Jf>xSV?hi)sx7hLj zIUPZ3=Vaq(WT5jx(P&vKpI?Ht6Bt4jOk@t^73Eh3^1C=kkB^0gz=z}r*5ZvF%3o}!tWwrE zcg*@Rad*}D*01^T@rwRhGS9X@`6M&lc6_wHb>+2n=(dd|lzxLiPC;QVJw9#a(L6{i zJ$_&u&c^xvbA2#PQ~F_Hp?`FvboAOl5W_NDv5OPoN#)v-skQDts}-`tESR;iG+fAtBmz={SUlC9@}!_N zO9ZJt*U01{blS#?PwJ|tHk`=h?oUBlI@ZwCG|4#Mq^Yq32DPD8s=kFmq+(xUs)JC$ zL5>7M{raFZPI}4^@*_sJPRnW{6LC)Z?1|&BG$8z(R9YhA(1Q3!f;uvdQN+-+z`?@D zz!w*kW25krgYa*IObIy>m6N+B62*;APSTlUyJ4yN%5|>d(r6KB1Bj5VY4-dyc8R>B zY2E&UgS&Mf_+F3-qxvRL4y{zPcWnx#uL3+rHjUFL5UsbTU9YD~J>$orLR8j2ph0#d z`%6JWvAG%J+_oz}I7JEKltc@Y-3kW^iRO&wKP{&G7PLm9K|o|IGh!0x)d4DPqV z-ofyFBRkWqr`M;V`QuXxVfRRk$sq;fjh#_XWvbfZ=ItP4e#L!jhE>8|*SbQj`RI-M z0`2Ybw+veEde7-z+D|L=9a9RYjjMpl`xMhH09`^8WPMS|miERtHD$*GF?dgCT&OxJ z{x;l=c8tBZAkNSAB@_td>yH@x%DX8H!gj5iDMvOxzEZrzfwR}2Zh3s)O8vxqrATgV$to^b>O;; z^rO+lFi#DZ3d%iS$V?9zZ8#ioIo({S6lYACAv5el@FnziU-c;BC#$t8*}j_96HJ$q z88tClyY=_sy{fwpP;8z181${!X^7F91(ax}MXYLZAM`(@A zjjbI3OCaj7HI#_vqITStrfC|W8>m(^S3)W!E*NpLL>>2m-txZWd}cul_$>ub($NJN zC;)!hRlYicd*8>Mqco_LD;9?teC>Ga&uyDF{BE-tJid?tG9-wq_>Sb`kJmYPcdV;R zwGv#b`wvTNHIRd}^BEY0d`)ZDvN2Sm)sr&CgTagzHT!~Bbzs`J#wCIdz=`JOZh8f7 zGR+DPGfUge20^|9eo!G`qB8HG)(DLwqN6?O#r}pTKtnBW4_F_<=m;JkGaw@Jg0Z+2 zJTAu8EW&W3q_6YfQ*;iUh|vF0)@dp-`m&BIWlcVg68hfhNyrl%;u+r4)GvFYpJgsf6~9smlyqTfQ*-3wMlI{T^1 zOa<`i27^sJZx;ArKU0dOfp+-YbR|>U;JYu%F~!L%h&b zy@vFNG7UqPv+9m$^Wz?zifsxtMp$hm`dpFCN`RD)OMz_aj8>~GQP7UMy+-%SuG=vO zxeExduUi}k^y4aVbqGW%D;}1rGC>7NR7I6^RrPTZJlUl_v1dk!~o?8i*$!C%&C(_H&i1tlP))1R;@uU`7-xUnLSRbIPb#)zq*0&JVHzR zzjV8G?CzO3%CxLKy>1ykRR9d6)O@m(-jnGoT1`Wk7)|R=;4QG4l&(JE;(0@a^pMrQ z(R>HHxTnBVv_1^1DJuen?M0Rs$*ndU01StpgGKMqS=acs&}}5Rh9yf*n(I(M|Hgm{& zj%7SCb`dfu(oOmFqaek~*4YILF`HBcfz1!fV0dm8dlo#-Tr?d4Cp?!~P^F z1nNelSNUMEkC1h`d)ECNnw`df-RwPVC#?CXea#kichCw@jn7?My*{>&)}SJ~9J21S zqz^(^6DjULpZ#VOh{h&9as4xs6AyrZx+joY%tRt^)r{>Ci0-RcIfZ20Ta~NcwV5s~^taq4=K>$&sK3T-S?6Q%VYUZXlA3;Sq@B z3>@>>8$@gB3xO&Vk^C9Wd8{wFAZrbBg?5qME=miQkexwsxEmM7s!)JY$(YTe2o}?| z^y38csT41jI{l5u4At|7@%XOfnO>l74m3SehyW8vQSDcKSN0N@Q@+R*v|iNm?Xw`j z0X_GfUf=9Ovz~3YLw=Z7*x$FiL+<2~Lu_OEQUlkY(oy>7eBY52hlbD)h7b_}77#vG z-?wJm&2CEsEUjBqZoQzfY|Ys2=729!a~M^`KHao6p?2UGxe9ig+-pSVK^zVa;C0N zJfqb$0)Q*3O@kZGxJ@y>az;48H3y#g!Mnn2)xQ9)W2SAwaj@_A9xk=)zE_w9s%%AY zqPs;Nv3B@kJ^GET={msY6^nOE8*}qM@;9te--&ARha`SKm9=w!@0Q%cMTqHSaXipU zL09d%qf##8Ck8jdkmXQf9(UreCP&&m$AEC0Z#*B3krmM z^cHGUvBnlmUntl)9XqKxw-~ekm;~ zSDZ)NyD_AxgVIIyDJ^O`w7_ytly-~02kqe)d|@+2>oxDWjb6%9ev(a-&pn_BdbBWY zZxkhFO`U)g+cmq_v!*NmnNwjABcWBz7#?L5Y1Jw{!3=?$o2XipCO^J^qu7drKiqLm zg*c?W)BlR;QbwfWZp(#J9b{t0sm(2NLTLrV+I-JK@hYF+jFS>0NkAy4V#9lybs}nC znBW|#&vSWE#b(z?zn%cb;_tK(0M1ZfNUjU-TE==Qu)3^&=jbMZyAnYaw$1VZP(hI? z{n1S)+@s^7n8ZneP5TubLi6)r4)SzY0)1_6c3qdThLj$BYq*#Fsn>l9(5#!_lwVFGUBrBoq7 zmb~&oZntZsSDZ}1)30+SY8IyU>y2tG`}a&Sd21KIUb$C-zczPdr&K8mw}N@3nF$wj zk;>jsFJAn;4R{OMHVXAs@6ZV8Xgf=Ul*Vp33A_N^iW)Kf0(>+c@a7RR6_GLxksyKy zWTd%2XCpUwM=VS6jOP56e3l=)8syZr_Y4!_6KK%0-3R_SOG-<`%8Jo7pL+s4k8$p& z*ThMcPcN!2@Ff`n>d&;bP8k}=*8_`EBVQYo8JxPBYNpgVSb48E?4bFTVAU_SIgi*^ZhCuaPC1^V9;UMObL=akX&Y?MEyx+{|&q3LK};y>!ZVX zmeFb_uAcnZ(JDu_1! zlH=vqp4aCu->z`lNj8Z<^oi=I4NiW@@bs3@%zZ@vr0nT)qfijydkNrGPWA00GD#(R ze(SiN2p3RQvwy<(!jFCL(B9rJBhs84DYZ=~VefvyNxSnt3>QWdY-MWV(2*`~eySJ0 z@Ne_PV}uxYvHuAjRCY?)`bc$65&vT!?)Gp-( z^EspDBdi+w6qcl6HWU>C1rwB)Ns#mifTbd8H~8v1k*lH|1F759M8^XPfM8jTb=wA% ziF4PCDd)T_D-b4cmYpnLs`IH00Yk9qhgFp!qETBJ$|zqj>bjgB!CJmf1Us@!PS1@t zkb3=s{uqmKnk=D@F8hHnW~E=7;$jPlJ>$?)x;e6`&kWcS2^R;*X zG5*3m^5^F31*@_~CXHBwdJOtlC9w=UXwHCs{1we}Xt!4Y=qA}gw6dZFhRf zAvb#73Yz1eH>;1xrq8of577bwwU|y1>{(pRr={IMKJ8tX=Gac0cjU06lZVeh4RiYS zC!TBS2B;?hBkTPGExVEn8M1Hk0@AF#XM7z!T~>|=iy$jO{6gftD7hO2aOObexB?lk z;EfiJkKz&nsdyZ+MNVYq7o}H(MG6LlC*)X$4K6fOpN%yUh^THAsP=>-G{CUrQc{%y z@B6xGT`2%voLugSk4zWR^e#pN$`W55Vm>2Q4#g@#k1wq{1d_Mjg>Q^WG7VeQ-;95) zo0q7{Tv8v_9en9H2^0BwD~}xAS0d~2{Rmi^D7Tt|nv-B`Lq_I!v~XR;nHQ#MdFu)s zGW*eL=*722gJsc4=go(?|0J1pCUXQ#8V<(-G<3e2dM05fk;)Ufz_CJrc^CRk-lOH` z(hiyPQNOAR2d^faRN1H^iCdgpx@x_~)a-Rs;8D*md%hjv^U!i=tNSluCPi*Kzf&rT zi0rzZEr{7wEI-JJFJnCO4ipI7d>=>8N{=YMWG9Q*D$kBT>_dP;dGnHWk_kp>H=dw? zSYLydG^wRG@wJp%v*L1MwQK?KL;_)fr5==B;0dq2_eHmPMUKy{tOTVXthhaKt16z4 zOh~tXbOxA}r`$Ax#-sMXt&(HNA@I$%l>(s5>c+~uL`Q;?4T1sN*)e4DO`xOHx_Y}w zh*)^YL{JeKN-loH#0W`onHl_&4AK8V`+gpF^2Yf)~t(b_HdHg`D|=`G@)a1B-!8)Lj>-wJ)C#dJo@s*^|w)%Mjeg4KYIduA@-8KAnP-^e%rEfJ`+ieF{9N7X%XX6mGC%V_>`v0G>*rashv4E*{FqWf+y;yRB*1&jwL zFXo*M<{0Ra4CvVE<<6`ZuGa*7 zribf|+Jc>$I#XH#US@b6Wh+Q9K(Ta_Xe9K3ea!5!cKfqAZB{cJ>fWn-sp?dNxJYE7 zq&XmAzJP~kFF!OG>XbPuwy(Rwpy%9}d-FipY!83Z@4I~F2-k_c8ayoQ9cX96dxRwy zw@g^q=&|I5NC|2(-TGnwftEtBTr=25%abmE`f3{n23X1CQTK+H+S|SEZ00RqU5}U5 zjg_NR^Tn&D79dNFbm_{Kt8BP%^p9_JRrTz=?2V+q=!EE;+z_^^GI z$L~zb&^-PDVkD6@B^G52TKEk~?mK&hx)wFuOjWVO0IQRAV=kwW%+mD2F?}lWM~g!s zd;pfhFj+pe&XD-bTAd4<&lgnyc`c8M`7Uo|2$KIRAQ}ylt{I^(xr04 zbH{fLrgtLUS3J7Wcd-B7;Q7Oc+x6D8nsxv9w0l_S-fX%u;oXZegNAKi9lu((VE1>n z*#`OCJ5>f{2?srR2z%05&)R(ER#9Yb$~9_K6UlpW;@k;d3HB>JQiHEnXZUK}m%lPh zUurVn;9uxqs3Li&ZUHG3u%kK{nBZa}Iv5pMnSbbDRIMxwEXNv*f@C-AVD2=K@e>$~ z5=MPc$3`><2|)g#f&reRqY=$P-+!uLekou;?vsC~fB|9me^}CrSpRNc`cs2r2mE$_9vw8Xvl~(9{L}PQUUVB! z?kI{X0R@lps1vL@aD&wl)fCkdHMBJ_I$&Z?)h3M`|Gba?qaFy3WimP{h<5{RYn_0R z>{tbnsG$Q;6xolS``OCG!WhKG`KR*exBM#9Ts9-y>pxH)jf^sC{Cf2WP#(3{_C)x`St zu82G82YPqMM%+$H$*{=EY+C;D>rmI3-tu2erJ(q zdI{baB`O^54RQ{A6|FB>J;(IW@{CWdS*5sYso%ymo-tRj6^3V=Z<)ntikv^~wKa-ur{TG{M)nn5SEJ8(#mth~ zylTy=ILcr(SxQi7m1fIAHj$vh+<+}nm6V;;%^SC5t8SA&DY04ToD%1{pfj_!CM>qG z-lBg&KAc0u*IFyW_4_Kw%6j4c`zNbD8J#0=WGz`W-`7;RyB_bP ze{u`|d9Q$$PH}0&o$@C|_=PY_;=Hb(J>zA4aOK`bE9VZl^sbGj*l6nSk-wnX780EF zq^o_Qq(jG}kdPb31)4XT?=;r>`9ICw8MP}ud+YP-&pp{x&-oQL)ogsVdQMK6sZGL~ z!|yNht*u-zoV492_kB>_sqgFk=5?RvNi4S z=B4BczTq_7fW2tVC!gc~nvG+nz$(v(+}Pai*-Gh~yw|YLRnGBQyo18F)DX`giuD$> zKl1clkDX5B0lU58#U{^{e7WQbB1(98$>(^g#XADpuS>Z$dz5oY9obc0 zA#1UeZ$)pmSyn}g+;Hd4l`V4$=9n@)KDjMgE1FXA8QT+*QgFey#>Zlbz~XkXQmb(D z26CK0#<5R6p;m>jzD0hXSD+V;vC1i(dwk&=|Li>9>H(SC?yJLehkum&aJff!a+#;9 zt5lmV#(WAZ;_Ep4eAW-%s&&94vc>J8vabL9OD9&&oy%_Gy#J7zklv2H1dh#g95VFP zW^4Bz?^|G7S=Zo{d1r>3>=Gu{mXwRjcb;otcDKtN?;;E%M^UrR+vB2#?=cZnRdOoR+rar8(iGJp+3$qFpOU_gs z)ad4ksd(z!q^q7a-w%`9X1e>-uo8yA>2r;Zl}Gw+F`KW~(BdkmqPaYoas`g2wfrlz zeI)uH1Uj|qpGY_#t*x7K$!c|@8r_q(eKDB}|1fXGpvd z<0g=lLfI?n{bP2vne1HOr_<54I5uKfI=ZH}Dox($na}n6%IZ}TD;_h7->`2_3T%qk zcz&OL$*P|HtHZf?H?m7+y<3A9A*>V-%QlK4w@Vepso)>zU z-MLzf?P3IrUH@BAa>vC_CzZ-?WZceP_|aHE>2y8oCbv8OZhjNFHw zodVw)UP!S-T#t&od_5JPx;}l)oaF5MD-Lg3(>4b`uIFg}Va;^p!&{$QwgGYu2X;G| z8D7CL&-U&pxTnERNy@ErzN9rvaK%jp^u@U9 zQ`e&XFEwAi+ImFV?|7BOCF5F5QgN)H!mEhgp~mbOBg3Bfj1F<7f=kItvwDOUX5ThF zTP?KCtolT%r+4vTht7qYmdzHlZ8uqD5Wu4nvqV0R92oYbV}n1d-9^91NP5A%vU!(x zAKfJLV6bYtK}k-VDcxIx$f4ECWTf1&W|aAtoW$z8S1r50qv9*^z3;>BzOw&-&&Q*cW>a_r)|&NE#}3??&6&vCt3FB0xM55KCsWI`%?*FfkdX4(I;MR zcZCqq#W_apu@^Q}r!9{&{I=oV$G)`%RzHd#9_30?z&fwG*R{q;yjr|Rtl-Hy5%TWE zPlfw}>X@GT2fy^tt5wrJV18Yb|3;wE`b~b~{x*8{_umhl7Hsa?yYb;?wa~Y**@1-B z_MIoUl2;o$R^I$r_O#3?hau|4=XVd{wL<0}Hp2I6+;UL=$fq*vYRH1!Ci^YvLK@<- zw{Ewpe>cPv+$2Le|9rJ2NByd^T#H#l_j_5Wb663v<-1*9zdaB+z>K-Ti1&FQ(@iq% z__|0YaD(keF5acht&h_M&%O7t**rjgeE8$Z_^92D9Y40aK0kUN1Tsxs%Tz8mSGRM& zcOXmJWjdq0%#uuROa9;k(Mg8-_6(W(Vo9r?dF^it+FKfz%&~`Y=F$SC=K-ty&gd_~ zG&zT^ku>p&!=7{KQ5ZD@()i|rtWrh8d}r*Eip61NLnmHs`53Sq8{<)Q^lhA|vc4>~rS__w zfRn3NesmKZmsG(~*(Cxg@ir2fjhr82=qP7}KU95q)sru7zLS#cCPLovxsTFvHQpujM?d4tZhbF`9GnZy>S#qEGoxhNN{`uE8 zpS+5C)i&cs+z)$3ZU$YsVGagQ{-&XXzFm=ea-|j-u17%#r`360F@u|H(@WEzn&w9( z6z-CCDbk+l#!#)De#WmlOHOxNBzGK_&+!tx+v=KfJVsm!G(UTnTd^akJ&5_ zcM9Hpv3B-RzV*4`$sSA2$gXm2aZfFzU-$jv>DLRIDi^6bQnK!MzByRW-pw9D-^F*E z*&tQ;nGbz_gkf~K;y#HdsdkSmo#^j(I4T~+KanzYeCQVXqg1#0Xrs^9LSxs6k8i}E zADMIMUN1}EjYjSn9iQnxWqdbpkLfkGvpujwlpyUMpK~(xSwE0?xt{Fiu)TCBGHUbV zgi2M(Hjy{Z+rP*T1+g98X~xpLSw>6x%!7oRvDZ5=DvjZvmlrVW^uO{}k`B7GfZ0In z4YsAxcTtkqi;Rs|IIq&f-* ztsU;twb@O&*pjAw@AcQgz{R5m@?x@Lq+T-i~7?VQV)+T zVEZ)BqZYUPEg!##+{`*-)>j;NhAlr>hO=)r2=Hx6@PGN0JLp)=ZjQM5^HYWu$sG2J zSsoKp?>vuGi@B|kvWE3wtS-|+w@OR++cr! zseQjH@m*bd!^^Wb>~G(uvty2S_ASkCUOR;o4*+5xu|TmEm*q^2M*CXRKRQ)(O089*9dO5l9n#a;Q-0&wHPXJ$s7Q}(qi#2Q7 zI`^N|ay*~ekYdw!>ruo3kMv>f2i(yLYCUxNDx%V0K zB?p8&IJc69I3MkkXq)k+DkRh+y4>RXaKX(Ik3}!d7rQNdueF+;!+8C& z@GX(A#jlj9^sl%Ten#$uC{*iZUut2(TetLD= z>#Kdy`+|axi6>d~CGx#rA|y9g+yg_7*U^iXC8>*NW@5SZ#5@#YDz7}k zm6cnaVBZtQ*?cG5D23fzo+u;~y2akpHTrhcl{xmF z^XQzHuCSqQeRtyiBTtf~l=s9QJ#~Pw+x2OZf!+qz%0u{W&<`X)c6jFPhZaNaz&Y|j(1)_LBt4!a5iPA-agb)nJtO?ypQ^^KKhfhz&VtK_Vs zZ3i(=!GCUk0B@CXORF*eo$X)q?HDk3J^eQOuUJ)%N&NUWyTRMC>E@LqVttwO9tPT! zzH3e^ZG53?e(m(0hDA>IlkZ+Ge~YzN+_@z9(lv!y((<=@{TBqrXcWC^E`Gab2YK$m z{D`gXc!h5XiDp~Xf>vq=&#tJpwLL}=IBqY^$g^1c;1Io7+TKm2yRhCJ=i+n~haFxH zhSUW~Zqv(i-J!RkGqO^`&i>%R#49V4Z{CcLDq3U|V7N{_;IMW1e4XC);(iOi$sS!d zzu-%~QbBvtM}kF8L1gX%E3DB>sXyvQtVsI;3Tv8=4>7P{Al&&wvxvB zm@kEyxo28B&adRuu|Lf(<=9@7y6fyN%BvvWXOR`$LuX0m?wIs-<;Bdxrh9}ArDQ90 ze0+e9?E3Iz$AKQR?Q6H;<-NJTt#^O6Y*|l{boHanwLiYgB$r`Y1RaLGFUYvcGU;^u z=<{{V^_O;96c)<5(04wTRk8kRaP44jVEWL2 zH*2!Qp?mKeKSnFc&15L+`IxpQ_xko$+nWTOR2=bAz`(FJ;fmxETPN*VhYsJ8($NrVi+s{`_oGxpg{c^8ir_2Odd8IU z^C63GUcu(qHk6k)aMbf=`*Yi?oVU|sy4z_R?--_1ahcn~v%JWFOeA!%*6Q}>K2$3E zgg4#pO2-u!uxKX!wcWr^W~8oxq4dT@|K77Km5_W{AwfqY1s+W*6a7hb_*Q6 z?y}Zm^)vJHNe8pmX{GE?-d40+$s<|*OstlC$(bTgmSvC2{Eg-Fy0D_r%a2)x)-m&` zsP55>+K@|n&o5~{!?KG0o_js9_2P+!^OW2Ar}(W|?0f>RF_Z@r!s;E|_HNpDOvyDg z?+MdYqb0S9&hn=fzT9zwU;XPSDE{03U@12=|p>HJF?BBLT zUTC!rMlLgl^?f1Xx+dEYT~^lp_(a|9L}gx$xL29NYxbWJZOm+bcUvv+@F9P*Lpe>7 z8D&n^Ob6PBGx|*Ko+}RFd{xZtZT)iKtvYMZ+l@^2C+FEcz4p=HMOtHF=IIqp3Jz9! zuC68XHz=w9&othTQ)6!7hlRt z7R_TRP#;ceKD4oDW{qp0Xw6Zke7YUgB%&T+KV!wIvm^S~hT0C)^{XHz-?&=r|-N-uXb% zHjI26C%ISEl1R9(sXxa7SLnbVvB|^c!mY=T{casdY!i`RxG6|nlI)`;$x&iD_@Tef z`OeHQ^eWogW;IQ^olX~LG2Qz%bdtmwy&|McELD8a|HJw(4~s9Ketg?}Ay92qpTEIB z(~ePhle*yb_`9zfE-&nSW_NMh3b_CxkE;FqUNz>q56)hwR=ehLvpGg`nANGRvGS~z zg_3!qa-xZruG6Y&cP4Yfq7vewpcai2my1cKpL**Dt>3~SwMAR$npkv16nj5?e9cm? zWd4^I)^B*49rL{Ix)uz3gx;yLJ{+3&ZmZT- zF%GM9O@f=^H;7i9l(bj#u_6T6oMP6M-MR0HLZ^=3BF-ZiMSzsM;$*HWiQozNfPtJ z`=MZ(?t&sE&42{EdEHAH@=bosPK$h~rZbCwW_8F}?p|Nfxr;R%SY~%Ddi(hx$syn& z;XXytZSOK6qScH$<^n94Z)&3--a59-`9S|$&bIf-p{F`o^0$3T6}3!i{1GNB+I{lO z`rX!;J$+!?X*jCQq|uJ1e<(0dh17@-B+=C zrQ7?o)jSg-kS{>kUW2?sT4-JBXZ!1zZ&sX;g?9a$v5VJ7)qxkBQ*UOJAS--M{myYvx zd3)OzqatU{>tXeCY93tG;=j6*Cs<;?eD$`QDz-OHGV>*|%jY|;sy5ep;(hyM!{W=i z4HBFJL4>wrH=fBz&e?C1oDsd2)NS`Zaa~=Q3d6oTp}2rP_DaPLg-7094b>@2-dpo) z2qd#sezfc{Mj>3L>z1WO?;PxBV3oM|<$Bq+G`dHAN1hcN{n)8wx_r-p zjW>VBQnAAG z)RrxxyX~!)^0i{GJ;%I^)B~33GH<2s255_}aJGKkOlLZ~^=Z*3b0>w*#jV9@gElu5 z50tmW3eBE-oii}rzx~mN#MzlA8{$&de26^e9-3zwF0-KIPM>ID`AuG3|0jy9(p9ES zgO{!|?`D*I$I?T1`@O+QlCC^jGTKJ4L4VKF9Dx%9X5aVjJ0d(+y+5#xpK0z_TPj_Jg^UpYietyMQ$batH>)8*v>dx;!vF_Z}nfC%NCOeg!a5|>p`n~Dx1LgRu z%tGM}vJ&&o9Ofz(J{|GAv8QQe(#E1pZ@~-Rf&x8X?#o{8Iwk24_n`H&$i_NhjL0*a z(>GjSHisLqGLp;Z>3X^XLk*FhTRD$x&5dMlUYpTzqx;;Ix?MaG+_o$G4C}P+>>~;i z=BkO3y9T~)U#e(9JYgsKp}mPAT=5lG?E)>~^`YvDEAcOapWV2vd`Gp#bdw;br-hS* ztCdZCU;ctBiI}@vHEzX4AF}P%uuy-J5VMe;dvi=}w&8P4w#wztI2zA6Y~SW^^KDmU zU5xeZvX=>#d&N1={@9wei~Yr{XP2`Kt?VL_qH~^yc6oL&e)~pdYxSlZ3d~~e;avQ= z4C5glZ{+_hJ1D7!qAko2Tvbd^?iAwecJBS=JHtTk(cE`hdxDjIEM}C$p1=G3%uuCB z__0Js_JGG*JR2|d?JH-M_sMzqQNmaUB-v^4KGCVyZ2PFr_U@58ByqV*B7wrW_ks*- z&)*~P<&!@jG}MwPj(LtNjwM`?-WyOIZYQ0VjLYQFkTJu~^;6~6P}57)KKMz@w{Zng z^H647R9S$G*SRbgY+ZKt3ZnOk`8^mj?)(mvdh-6Wwaaaj|OkGbOd<-0cEZ#?JO->eM^`jy`r(&{kzX z`x~DYa$7y$m_6&$v9G7!=56<+wC8UyjPzMvab2DBqN;<_UUSN9Y0Xn>4%QdPImcNI z?sxUN+OS{pxs~J$m+GQ>$wcg2G0K6vn!(ppWHw~cws zX&YHH4u4Q98PJeCyutC(LpHJ3mNNrhg}4qc+n6FHE~y(h>%@!&!6j1m-wjJRU+P+s`e$yLfc^f|;6 z{CRQTx5sgz@4dqAz6}tKe<8g8o#ttSXEW^$Tb~v6c@I@z+~1dl#c+r95See*MVZvL zM5!104ZkgD``X0dQP{7sX`mQthTI(PQhS6{<21g)`;4Ne*D zNn&1~B0gl?C=;1p>jILYOIqJUYU$XV-tJh}eElHpiJUzcE=}l>e^0yw7p+T85Yx zcqv1RCt|wy*gWrM|Y!jQiB%qeQ2-qJMlUv zzC_B)*(J!tw8Ngs;Np5CU=HDEqAtC9&SBP%%m*+1$gd0BMy-av}2HpLkqL4w6|Rv41Pa zJ`oq~d7hvUEpN4x^AlI=hwAUy{LioIT!>Ts>~O##jhB62tU#=zmR9f0x4(`K0my`GRcF2lnTceQQ}C@uk-F02{0V9nr@QOg3$=_NCV6 za6}!DIJULJZkVC%#=VbmGOy!1g)-j{iZ#pVWVw}x43-W zkobj?m;QLqwT)75ByAdM1Ly7QNm)HL*Qz&R)0?kq=WYVZRI?Y9WybQeZsxqp7hUFh?3iT@gw%&N5{6}K&(+t>XVGzMv`wt9^pw*k|81Hlwjk#(IO`ly_fLpTZ#Mznd zo8R~*c&dwdsu??QsVvC#;oF4am(OY2{9ZNI<-nag>TC5k(O*aqWRmCHvNhhpz%HdP zPS-4UP`5WtMz7TM$A+0{;a$a{0l^ROT`paAkpm50p7DwLTUMQGPA|M%cuzm&f!1en zBTZ-7^L48=Go)9C?CIaR>R2Lum&mnb`$n^;al;L(Z1yeU5w|?*oS0#IxN*?HIhbeo zvx=-pXQGDv7PY3OoDU2W!orUFOG%Pt0?zMOQ|j*RRp)ED#jx&{ev))R^e&~`twGwc z%8i$6mq@BVt==DqRllQ9YgTjX(~U=4yWQ39+9iG7wry#I5P|MaQ|Mf6rRe?V_;=pH z-w=pB-@8QU!=n|qwq&f|W>o#wfkC-ukGs%b6L}4R{cnta%4D{Gc;6By|3 zsxNgH;-iaE7r5ztBv3Z^Mu{SOLvy!rM(GWOvho-gI&JG%>x^tO`Qq{`-0E+!5)}K_ z-ucysV_rYIEPY=g(%Xvv-9o&F*^h)J%|vncCpSv5Ovl)(Z>{lJsmmSdb<8HVhuNop zPAG%V`c|v1kGGf|n6633l0v?6s`PJ=s@WLrtE~L2?P696F}+hcOBbELPko zuL{NNTXo+%v_R1?2;Uw0&Rck4o{0WFOhBmFzLm`-xAphou*HV_{!S5ROhEMBVtLu@ z!o>plzH{|Y;bKA!immf6Ey>oz+U8%h(OzSp_R_I&G(r=ol@YYfgGEVAm9@8cbau)mwAP`7T#9dFIoFfaDz?xx*KKpFs- z+C#NVYFFsE8Z5N5%W3QI=ai{DmB`|Rxnf!vnOtST`l9xUrq-p~+xlW7f?rCdwIA9j zbM?09=@5Mu$`>QWXjYy_J}$GKu2Fd;75%L_zf$yj0^bD#{P&DjzenFZm-69$%+x*D zp|hVo!t zkR#H+;a}DpwfcsnOT>}K@G)_Xe%{WZ683w! zdYM|4jm)JkF9>@Sj0SYfmo*ASHHmDNe#Exw(cH5q7epBFQ;xcM#SG1BSRLfDxsD}L zIP2K0?~5KNFYPW}qP#EAw6!3Va`cCGUPT>?KxI_MQr)Cv=U%z$S*)I^VqdfTWpb5n z4tbfjCw6o3zkPYZz*>*RQsYXWvqsWNe({>OF&93+pYwbZ<8x0%mO+twQS>66rb z@2OYeE?0PGS+}yEtY*#CbYfs|zF6@ekJXE|(Ul_>7U^=;L9+m7qbeotB& z9m+yGmT+KPv_EB-N;-aYiMi1GfGJI~;OL2>bOT@y@2sbn94=(GJWMU?9$|J&h=NJ= z@zQ81{p}wN>N1`d)N5am<_)OCJ9`fn+;v-PnLV>g!hQK*m$I(o(F^;SSaMid^|JMV zRr!!Q`=?Fi5d*PWM||RfR77{zYJ@Yc?w7={H#)L)m#vh}w69>2!H6$cT6dg2I5~#A zgDhB<)F7B8cjjqTFRTi5J9sqUIze0An!dh+7_jhK#G z3s#@!ZW!LIG&5yE()L+ZocDYzwC%8I5!M*G+xmjV3>%*qT)@v-)M4~&t(9shN2$uW z!2#b*WWVx9@0PE8nNcR5=BmQNzxkw|*6ZX!(aQl{8@{|+Y50cMtuDv9!z=wlbFX;B zTwi<2x3BiaPMMn;<~3r2ibR~^pn1_Xcl>;t*?<2_piwUu+UE*Dp2DIJblWG}+A zVaHaFr?XgZp0IiJnz*QJx$l~G@`)HRnTS;4K0!D7?Y0B@_1pC08W@%wFPg2!_Q+>g zBKpV?w$=qk!!t?U+)uAG`j;K5Ha&E$x{Uv0OVY^~-MiSm&(%B6{i=6(L$<|nHJ$!_ zPWS9z)|gzqU+lf~?9~nK-%l_vA!ZEOZj*68Z^^h-FZn|49Jdt49X71<`o7HhaO73} zi=hBjhCo5ds!h(^vYw^Qz8X6nzWE>JWzlauAS9A5pZXXR{xaQ>@x_i++x7(UuXGto z?%g2sfFdO2=b?SH(@A!eg-DijJiC84+O99n4z`z zAL*JFRn>hjI4ZU{UTNvJp0Hg;lmXxEg$q`;_~_Sk`}uddWrUPv`^#LJs}U5`Z%|kz zc-o{zrhSIj#qV{Gy$a&=)ILU&uxxjYu{*ie)Yw(~NXq58invv@aDBP){mq@awwyy> z&Ns(gNo13DI)t}>b7gDy%a_3ogS{#5KWvQNzj$ZofghY4`+AsK^f!rpvu0!<%y!r7 zQ6MTVKEqM5VOI8+p`DC9eBArrWR}0opS8fXyXI;415<*@liSgWgQ?2VOmmCsBL^z_ z9$#@27RE*hiq=Kfcg1pgW14c`JyCIWkSNs)qkq3j)TYr3BtzILybk5gLE&HFWHTO}8 zR{heNZ1>JIK!>byx~x)NrS78M zv2Rtlt-D;_5p7R5Y|mobwZf4k?z-xlwEMDaqOJZmx<}mAx znL1u=&-g64E@JzTxlqmK1rhUK@E+THw97Xk<9!cn%My+1$aR6zUZLg5uMe=l+#>(+ z;@qLd2Z!{rPrBaFSNHMT+6ZLU&^?~rQheiciCT8D)++hO*2mM2@hvoYJu3>M9nQM; z3+pNtfk?&up6LO73wFhR8*;RMXn9b}QTC=Vei@6|Jk zqz*;S^EPqRE839Jq-I!^voLD$NuMx*q%Y~q2JI5Qw6_eU`B@4TNhY2%d+_#T%O^f_ zfsL-*Y+*jkx8)diGrx6d5@tU()1zmeotMM4lEeiUZ{jZ{bDb$1VEx3aQ|`ea!tTAO z;PfNiwPEwc-Ury#E|~w~Fy^afX*`cm%mRizBFcCJ zKc$u$E*4F^$(4GjGg5&^nqnENHD`;y{o$e$Gp{prcc*gT`4^`RpFXQTE$Qp3usmRZIRDxH(sn(5Wictvv=w#1Sw;=}3oEX*tU0&k zyzQFnhVSDYea}BNlamzN@Rn56G|xDAt3G@_vAk$;Z9re@n-jj= z`bC=xczEYV`+lCE__d3nfGBWy7EbQyic3uXPumjuSntN|-P=KC+FEq6Zl%u9BPN|^ z#i!TBeNP*r(=L!Jj7(xwR%}SGyR3074x|W>NnP7*+56*2+Cb=oz!09t^o$1gZgDac zd=~L}pLJ?=4bfnT%d<=D5%VI7=WJhD1#2avs6~TOnll`5y2+Y*e;;MgmCGXqp?O8)rZD9_5Y-O_gR@$JCtW(^DL_rrR}X;LdPRxmYV5t+_BShVh0_D+Zs5%WwPvd9Z-~VCK7lp!6$Tm`uR45r zuOz&v)Xz&dkvF-&wxsPE_u)M&3h572=oSV(-gfVr0ONV4uoM^x23ajb1r7L z>;Ey-9V}krvV24OrWVVUHLHs~9)>-17Cn1EJiqJ5@|oJtg3Z_iE7`t8YNj?ava=p~ zEqs`p!(DH0eeU_*Fj7I+>$Yvm=N2;ha%x;yE+oK3S^xfupZ}%28uADEIDKt2{&R+j|ODkVz${k_46B>6zQmktplzvd?$UU|t zP?Z0%=0Wymf2rnUiVv~Z70ibnT=LG)!E1MS+jrgVY*L3@V{WFN zvcCS*es0}5*`cr}N*nCHUP*si^et-h-Z|dvkF8b|x#+Aqxwi7G+Xs)0N5sVzi~5vS zxAI?o=p?6Ny18J1cn^qParIe0XA*aP0tK%issGq&EAibTw@MvVhKKQuLYoE`931Q) zs#d*Nlcl$VEB@Y`9orcs-Qg0*uhb=d!y?S z&hWY3D>3$*&r3Saq=l$GObp=`Nis~o8p896A%irFg|YU%a9NP6svO4$uGMsdhQajf z_BdYKpnS&J$yH0*u=n9LK1YHdeX;eW8Z}8+`=*LbTOhYU7uImY6vdW0$F}ZO+AlJL=Y)2++G&QoN}wmT$#+=J&cpm zKK-v`Lo|;#0_Im@1rmjp{`_}2gXm@hI}=$eOMB73L@6B2!yvlDz`{gS6%0j{6+y>0 zTXSoBD_dTW^c;vIL}krw?d+lKh8K?$1+2`^V;qqvs$p(yZ)T^%gd<{j@pwEh5rY{m z6p9!xnM|Rchu5eDoFidKytMYP#)*-b#`gPn$JF+q4;+J5Kzk-Kfy_$=2@OcVuZu(i z$6#J~OeB)1=f|!CUWez!2n1?7aE%GJrS=)QM*AO*No@zm2G?ML_W|do)o^}zOaS8% zNT9}m@xgPzgL}n+bW6L!5Yp7*8%>g-aqUM`%nvfmf#xf3)es!1NNoOORK>% zVS;U__Yc=NaxZXvSg7lQYx})`b&kx(M4OkkMp`|xzCZd>*9O=3vryL$-wkb@zt`0F z1Ktr7F8n*ph+qIBfjIgMV87A9s4oS+5V(Or z4GXO!tsZ$%)MqeqOnq_i7!F2jH%_g~^eZ+d3GAa$_t}4lAAiAunu@y0KgGo`)e0?( z>!0W#_B%Qdsi{CFf(~Rd_{xdAc#Ig>F$8KMlZm__KDv}2QLxMK?38Gz*j&5^OC?m#Dfr~Br-S;V#DIVj>2Ief`a=7$6{b( z!}DMsCTc&>7mop(hXOYQL{W$y;C}F6yu%@$WTlGr{v9M-aRVJa~gx>JEgn z!V6;ufV&QspYQ-Kjy^813M^KP0RF&D_zNH4n+7-x-Y_h*1;8f@cL5eSoKwe#*FYgq zz^DBOc=!c?w~WPt?Fi?hy%OpGU=X+!#}=>!soM}v1dm4_GkDx^tH8ksU`xR5 zOn{RBtbv~o9tR&U+&1tB1UD8R2&6F~jwb~lz=#MR5I+0^BM?4JReT_k$EP1A%2ts7 zARG`|0T3Fo6@RiMh^_b^XDa|{Gag$pQCJ`$X#-6XG0L$cSolNI0HqcP7XHU!0dQH9 z1q(#-?`#C377#2TSOB6JD2Rkoh$$n4qzVZCRgkq`Ldae6ickotVsOyF-rUk^-DazU z#-e}79*KXl5Cp2F4d?;CkKQvVF5NHqor;2_5 zkE#hU=10lyyzmDf{;0uYSZLyRDDj2YsG_Kmi&WhNJRTJx!+}6USf~x* z$g~1i4)20igZ)BPPEhv^7@2yPaCWed;H+>JV`b8`WB7zdR!Lm|^*lHS`%}jra|duN z>Q6Kr6N&`k{3A7ZicGY{(r$ou*YG^GFYNzYf%A-A(pxz*n!~|~!Zb91if(xN; zFVKdzsGriukxsB9d`hD$fUT(i(3->Hs0H+ZLs8!&*axG^3GlAq`~CeH!225=3{FFR z03$U#rfo%9P1}WV66!7lZDBuHXb)=w^;qE}i7-AFF)>^q{K-QgT!3$ex>snJ0BiV) z5H5^j0^Ifp7sfn;{|#K2JT`)W*a-O9(|+Emh>h3?#75A_1wc>0{V_@|jF3J5leP@_ z$%6$vf&~N%Ba|~BlOP2RArcbkzZWV;^V7Tuw)vOT0*xAnHI0j)l3p~57*fs1#0l`O z;6Z~jsU}XqQer%z^$_s?-{g>^1T^iF`n^WF2%zhxab7fC46TN&Dkzhw ziy#8$;PGH#V!{P7_76}%!UZH;0F3i*7=UyU(7Xi*AZe5G)`=$Dh6cfUrdtO(TMqDQM_OBx5FxS|DQ( zEFf4wumBhY$Rtc@%LNdPY&<4nV!{Oy?hjBv!UZH;K*EJz-k8uGcC25-|F9b+ku<*0 zaiYQn(w|~SBwRqk1teUUdcp-Ph!8m`8pQW-UfW-B(R+jc-65XRz)*w3$N@YDJg*8fLJylX!gACW>;ll(~ z5(MI(4id<&3E4Fv1BR(*z<>wFC*#4we?~Td5fRydGTfsK_rRkP2XfqjM1VvP(H#^V znM^H2kdlEoRmcXy_-w^Q$p*q7`~=EbiwvBQfzuQ;aKejCTHIGK)bI2Hf&~N%2o|Oy zEKnv77AOc7kZuC$CZ>aK0#BJVyGJk-q85;W6Ebj`1_n-e;-uLo#zfJr7Bh<{|fM`Qyc8xYwrO214cO9mVur^dsF30g9Mp%B@Cqz&LR_@$pf z5uCuYn2KZrZqnSTa5&^ng;bWmAOR(r8F>~{5Eif#FmU?M?4rSlzY`6Jn?T$I;wGjh zH!*pM?{O&cJqr9dhLb>K!&D<1M7LTRSs9yKnu0V4P&c6}CB4V1BZsbYeH3oz90 zGzijnAbkhYcT7bNg)(WLSy&44%tC?-B)FIkw$@mXif=qM$A2iep!`8JAi)I^Tp+>4 zloVWGCq3W;81Z+e0^tL~2ZRq(6d%T?A0{eoApb!)AZY`VHXv!kRFpOVoAUA4iiyGk z0l9D@X#aSa<;<&rqH(!wuk4a{lrLA_c>a>e^=A& zU*Q)&b`Uryg;jca!FaU5~T7GzV3=1Bt2Nsz25?-Ua>y2Dwf+yfH>Ro~w{tsuQCESEg-+k@-W1;At29`>iT zgMHz`s80nPQ^&-DdEopbHFzpa)MTD;!6P>?a%0pRp!OZ{TONB1=Nb8b^bOF~NUKNI zN4*EQ7FvPl#}sOR_;$vQPklp#pY3Q~oMK`W>b=47VSCzJ__>APHX12#AlmWoH31K{ z8U+wIpe?*{_yFO}z%2+Th3Ciir!9&)8LboS2%pmE3ScYhKeXm>IBKCS3EV&216XL8 zKk{zj`xe9p<)0xz$fq@!NS=7BnT1Umx217 zf^T7BumHdl0x10UuoxWtJrSdh@b6&(K*2v?0Za#%LIeX43B=K70HNd;ER5hZ4X>%N zFw&8BA0rSzeFii*pw)0NTDx)Tf4~B6@}vwnBxQiF9d30Rz{9sG20jbwTOFYo;M<}8 zT94FV3s9*A>Zb!d?FoPvq3%-fqd?mt@PFzr4|vP49Xy6_9?nJE)dbLY^hX44H~8xe z`oXzj4GZl1`~2YR0!DK`H#(J~8ToOd?JVlL{>7&a*EupD6K!7F8fo>&`l$1c9f!I$ zxW1od^pl{i^Y5cOE_3o#x% zOjI?2{X_VOG?s{H_=8}8!~-H4ehSGT0r$VdON_c#074T|4gYY(7(+(( zkk|t8CrArQ~s8kDZU0?$tsv4z;Ap@J9!1q2ER6s7|xfW%+paV7tm(1L=579?aC zfea%6X)yKk>QN?*WS}6D0g()dWS9;l18IEi=YK{rkp9qtB0UGvb09s(l+<&Opt<8n zB$-_fhW0R+3>0HxMK>GRnNV#dC#dEi;r_6tL>5!XG-9kt1nn4UIsO;59KQ@HCow%Y ziUEW82*gKB2R;HnX_4;nf5fas_7KP(0@*`MK_w-2{PZ{zWFN49q{Ts?fItC(!c+tW zV8}KqRG`{KK{>(}6FVbYb8CAmTdJIZ>Vdh-$->a;;4j8wY!beI+fl~K!PeZw_E%3b zc6{B(NT)yCKtbOz0|9N|=;Hq(5&7#t81mSG#*cZkU1i5k;H4^k$iUKG&cN2#1o)|1 z9r$yBm_K6P{0s>^5jRz6dxe2Buw~7br=He@pv3n zm_>kD9!L6&SJRAq;TW_6l1wsDfJ+F>9Z4h;cq!l|k)f3%9=LRXNTU=o@H_=dD;y5~ z4_r7vQc41lNQq&A%j(a3lORzgaBU?6hf1WSMOxZvp`|5Hz}|Dh!0?Bj76Aj&#UNeG z)YQd*pX2|Q^dN~*evuv|@H;x*Kodk5Fx2mA9fU9lVGzPhO@sl&{&>LfH|7S!1sH=c z6EH-bD8l?{f{G9ZAq+y8sfjQ^v@jmROcWT%e<+U;Fd$$+z%Vs|fiy-a{1>_EM1g_y zhtmoI1_TTU7^WyNjIVI{sVDkFF9J-fez7D(;`pYlf8%XH-(Lffh~tZ4{?)vwjtG8` z;kkdt9RuV$)Cj^3Vo>u&0^tau260S*oyPt@_L!zkgy*nWpkgEu@j!)#rK%ul>cz1G zK(!+*)M$gS7u5TW=>EV6AV?P$3$>8o#zz7YPJK5$65+oG7{XY9nLr%mi2}@@k&qEd zg-EJD!3BcNFK~g!2w*FfWc0l)ESGU&In)- zz>IJtzyJh-%ajEeU=IJ^QZSgYhA^1P(|2Q#z8e7y0+{InFyqHv`WuUc!Ti!j5rOZ{ zctABl76}Z6Yr2O{) zLm3M&K>jpY07L#GbPUoWAuSTpB27slFA=!^j|U8YVUa-BF%%4Gd|~lKStJq#u}FwT zLM+m>h_pZ)8&BphJ_mmT7}A)SFhpR;I37?<6kv#mflY}%$(?gRq0e6AFBFtES z0qD&=9x*gg8V2)6#zjQKAQ}eIFjJF;0sgAv0mI)BW{kNV0mRH1Z=eYx3>XU0Fo=dh zG|aT1VFAcR2(Gd&Q7JU+rql=L7YGZv%*LMou? zp#ma+B!J_Q9uoxy5;CAgz<_{ZngGM(S=JMfWjzST3StF(a);3r$w(ZE#GzAC z97+IruP2LQAR=221Pq8`m?jhhVbV-A2n1xJfq(%4!!!W~{Nzy#ctkNEU_ihyO@Ltn zjwyfDdyb7(PXHM=CW|M*AF+HRn6G%ewSA-dxg#u5QG%sB+6hat;FbH9$ z3BpX8&kY{=+#oMqU?Bi=kJAbXi$PwxQ_@Qpj~|~W`77yx7aOB+!Q;o(4NsK0!Q&C> zfk=;0bb%;?5C%`gPEmvzpY-@U!eGZB3~ur?H#nrZK?2%e^b0~5h%QqWVW>gVtqk`w zNl1wPhbi{(xG`CR@!0W+p^4HkSR|lD2!jx2ny7%V1mK0 zW{eC5(J)h*hWS6Fr@@a+PlLxyo*V{)YaK{U)Xp{5N3KH3}t-Mkndi)h($YUhEIP&=H)eaY@sIOPYWe&|hg7!dM!HFnL@O0U->cVGs>7O=uXx_%6{C zWo`&4x)K5g1Ps#z82%6LM7Xi;L^%AUMPmU&A?5}#H;B2J9?Z=Iynz17+~CHlfF>{7 z7!G9{L#DXM6c;=JB1l(Fpb)68L{rtB2!|bCKs!<928$AGAm#=!H`4_e{`&+QIP91N z8#oXyW4t)}6Gj-6U;`lxLYQfSFcZk_^;hNwGgdc@nLP0c28mA)!XSj19teZ|KUklD zzP~JJv6Gj=2MmP-v`9dU1hmsae1fG+n&B%L3IPKG1_TV#0~jXHA|8t@;*r7yDO{$B z!Uanj->Ywe;!rRYq8JdxfGCFPK`{{j`+x#i;+TK}SmNX%3=ts=5{Dvj=rj?B5+_X) zizOmWECL1u4ATP`$m8oz|E7o~6UJys@RMdshQ%XWGK4P(U#17XU~!WN3^)V~2pAAB zOcP+hjxY0=s4x_Z;x{8;K)^6ffMEi*p%VoL45AniFd$%<9>5?rzE{cwaY2lPl&45} zij=3*LU~G=wAft~6uJvh3y4~n9@N6*1wKb{&yfu#vca4tHkgxVn~hAf5iB5Bm?p45 z`tQvkNMp<(CeQp5SzjV_LFh6~&}H(X2%{jv2o?}5OcPkZPnrWc9{Gb)h+37IhC}3xTf+vCZGg2s^Cc*PKa2{R*g+Ku3Ak7Pp z!Fg&;!Z6YLj91gj4)UY1`{Er{$N2|dcqxTQ*9j<@mzJ9F*uIu*# z$N5>9M(Uqy1m~!09hrxA?H~2X`bORX_4&bj9sB-h?+4bj_k;a^?VVkZ95;4`@B3Hu zO@IW!W{PBe0)~Ouj=VuOyBqBSd$I7vNNPv3kTu@X*vRJB=Q-6~J;g)C(?S^7U3dkQ zs)o%X56Q!q=Zma{KdiH?Bkcw2TpIv;USC$w`tS9#F_~SK78?GeWoHVkHv3^+fc2VP zbM5xyLXHi2Xy#w&M5F0QAX$ua)|Jj>l4e{Gcw;XA)Kk{uTxS|Auf5NHiDO;Mkeo6W z1sfepFWB?Ct8FMcE-TP_ZXs;$1=5X0jTOlA&F%>w`sw*^!hRY)P@?dGL9jub=liMi zg%3Hy&ddu_uIB%FW(Xe^O!?XIVSIis*C*n`SOjQGeqbI5AA}DlnS|BjYUGEZIz9}- z2k95g1mvdWnq>t3UJJaEAFe{bxF9^@6Xl08OhWR5^8BYcF?eo5wPeib`@X-jtgkVCjv%%Bk->cDp zF8G@BC*ni-QD@dnf-|x{4Id~`5nPJkI{OVIKdfbk zYm*R-e7FD}o;#1K@1KsN;yC@v z;h1(nzeRC=b@=f5;qLp#d(Q9If&My>w>WHb*+$O7eL7h0e3YCH>|RWyKlg#%W~{Co zu1$%;2ZZjj#0$Pa_-XDCN)$c_AA}E^z=u%%I0;G=J_sL#58J?p>K_CO`XG?p zA##Uo#2pf%Zyw)% z`15Yr1eGQpB=IzAGdp~tw>N#ygp0^{De>YIB zT?Pz;T?Ey3ly94IN2`?lA5NCl0qQ z*LE4Fah*5CFPs+aVP;D*EO*Pi6u8`t^^6VeZ+l+vz@IB1Z9X!GcNfBJswL8m)$QK3 z%{RLzTQuYk5xZEqCfT+r~jK&jvOTMT3iM|s)pJ&7x(@($6Wf(nng@zZcv#cYnbF6ch8DW1f zmld=;`};g2PQQnSmuS(M0;|{0%k*1UepR?| z!B>GV#f9>7z>*h)3kzmscc##4-k)csaACm_!8=ICV8Rjs@WGPO1L0g5H8H20!WSv9xV6k!iDFLi@MOh&~?Q*QL-<{z99R; zRpLVX{66kWaiJ}Ca0?fN3&Mq~#D(~FfhcG9T`b{(a6!0mmAFvPAJNGlVH%|T z5l<02ieFeT!R}XOUkKIqM|45^BZLd*C_eck)|ha0xX{$|Q#SHb3KxV6$E}NS!ZqVU zJ5}>jQk3iq(j(-j+=8F7z2IEg3+;{+C0r0L2p2Yi3&=ao{{GcpcAtHA^M@Z^J=)x_yy?^(j&H^M-0{C7urGcf^b2&unk=3>)}E#To5h@7q)>5 z-SekQU#drR#ktaoYf@a3;+ht}#5Kh)v~9I`M~af&QFce!9XDZjOx4a`Xp_!gkRBmD zVjFq{Cy3PYM@0D}gbTujZQw$vr$+?o5yA!G!ZvWB-gjkMeOE^Nrk?gpX@A6GZ(Q!z zWOq#UzAHmfvOCJ|D7)hp?2c)ywm*WRgbTt2;ld_xq2708lD;b=JwkfK@f&o84U7J; z+^cI7laF2!G&smO1=jwJwkef^oUL95nZ+Y5vkMu2>B`Hr`&{}GNqwb zToXk}UXZ*Xd0`XsLbSb2RnA{XaS|>F7laF&z=e9}z9yafD!ZfXjvKK%Hudy~MtX$o z3$ib4!oCovYI+1kNso{oAw6OXdPJ;u?khzJ7laGKg-zhXSna%~IO@D6=@HT+wxLH1 z)xI|s2kn~@E(jO4feU>-T@zRFK2Kjk+3lrdI2uZf~$ca+^x zcE?TF9YeKqUt`d@uhJu=M{GlnXzJM)8rc_w3&Mp>;6kW(jvGZukB}ZAJz@)bL>Q~Z zK~t1)LAW4X*aR-ri(d$eUywgS{)lb(BSPQT+GkBsk{2W|NM6{4ywFwKHx)YVo08p8 zcE@el9qXOr7IcoA^a$w@8_^@`o!1m}UXyS^xUdmi2=)9CLH-Eo5z-^Jp-05$_gVkj z@BaNizW(YTe}DV#_VMoh{ja{bfA{8JA8+5?y}tS5-@ZT0#>Si9-hOwuc^P7{*E-CR z)-P{f+&z4F{POMX!#>5E-`t*_W7pmM>F&+r+Yf)<#je?>l=fYN_3m_yNN%$?OUKyBX-`+n^9!!Yjq5cXZy&(HREqCUIk zeEc>+i>34K&fZ(fuy^d;xeU@nLxYx=ETc8VDqrppy_*})iyepYS|hCxyU*#?A^dI6 zOFp|>g_h2>oA1191kUeqKmB&hcPhg=$lhJoPlxP`zL`cEzYsq+hz2g@_`B6}x^~O+ zLgRAx@BA-+&-B~CoClD08I4Q+p&j;i&7HXvZZFs<*a+D3`m%!7f3Kg{?+ULN4jplPLx?wtZM@-V0jiQERE~j1xxK2-<Y-W+Bdt;Ki?hRzp)cvsk@p_qR}@bBr`~6*o4e5RfB~| zs324jDr^E3VB|^%#g9S-p@L9h6R0p$+h#pzm$gtqsIUoC!0u29h1_`Ixec=zMs@$U8Q?3yf`lI{59(@53y5xkf$?%zLtb@=f5;qLp# z`-iK>?>u+6{B~Ix%f&mp zfpYD#=%&Fge(xyX;^jxHllxp3_ukS;o5*AD@cUf9u#yx>I=JHQHWt_%!?ge|t-VaM%mSJYk zW5%pd%VTsbygkwg?dgp54tLQR4h+$ZCUn0Ijdi&( zuAz$Y!|e4w{g&*`Z=~&v(c#VG#e4HJcN_BgnSAq1Gkzk?o+ry^Wiu(3cdblAtYqm{ zHu=ZX-QF|aHWskomOFKvQPB`_VZk$dEp++2m2cB=2^~+5h|RK;|UQ?sB}UEL#XpAX(+Z_tKZLyvt)%Cv~96iU;huX zLc7|Kc@BSk(gJ3sU=D`-^;s+V-K%$ZfBoU`q=gI@oF@1C7hh&kmoM+XyM15iHk9Pm zkYFm#MS6(Eq!A{T24Wm-h2*jhv#_z)kWLucd=W;tM8w(O7MsT3|L1tiIh>EW=1{|i zn96~;PD0x(EN$p5oGnuSF;sGh$GEu(Bhi?Ms~r1X-w=B_lHL=&hX~h)Q`j3}jPrb$ z133w_`^k7qYdD95TkN7$-VOwK(#SdHaEyEVKv_)3SWJ5!`7lvOde<5O5NqNDhk&(_ zI87t6;deepFxore6uU?rR;G30a;Fn_OMKoyw1pXv{97ZFS89xC9z5^%#wPJjQ!2@s`u6PnN;|KZjd(PvMrvfD3aO4MxwJrg5Q%Kc7Aqf-&3Ic^KfC3KfO5TSkm!v>Jps)o{AgZMjCC8t#RXLisUVfr3Cmpm2qt&^~|GXNc`@)D*eoxG%zm#*hL1v@;f5-3FNeUSG--iIxC zAF72pa}1#36cneRIE4+wDKyn08XHA4N>Y%dumMS-oodA?P?97CNeYq_u3u7UIW)bF zO@WdG3IYXz!WKZGmP@i7<&u>8AoXDj>cddWCD{&gNeUDM3R?gLzJF9nedq-W0tJD> z7C@m|m~*QzXMHwq{mD3c)@S4FD{Xe!$N#S7V=!%7O;TtjDM(U~q_71^q1tKAtxj{6 zq##LQ`Nq{Xe>Sd-p_WY{2Dv2Vl9Wqw11?EEL|w_y7^FT(eUSRF1@)n+wIQl)v>{5M zAW+xvu`Uv8^O2P?A7Fpde7#04NN#_CCZxdmp4e zNPXCX`p{RC6naSt0tJD>7C@n^1`3@(L7*T|*a9fD)zpVp>VrT*ps)o{s21iN73Qqq zB?T{SA$TdKYA(qnm!u>GNeWw#6k@G|TVvG0tpWvs!WKXw)H=8|1|8fgP!K3=0Th~Q zhQ>yQMuCDrVFRELrdk`KC`l2GifB|s#O84)5RGzxvDWm|#zzeRlK5zkPo==e_yr?%Qt<4~O@!4Nz*n*@Gs+lf>OqT)$fx;F*p{ezC%FyWRlmZ2T!UjO0+VRjj9aVI zOA|@bM1(QIm2r@J?gZ*9*R;#VBTeHy}k@l1_vvmZ!{4e3Zz^EFQU zo@4bazx{1@{@yL`Ja?b#IleQOV`a5%yBpeJuB#7WKQt51?cScduHO%R+K&XZr!>rU z+K}0A6W$GM{$-X3nAAi{CzAkNOU0O(OqSv#0Atflx)6z7}$9=8K3yg_r z_P*XQCeSO(7s4>v_TTlpu^Fb$r8QFI{Ef8L~uf0USNzspo~7!y2Hd;nwg9{*ApgXcAPs4e<*jJ@xJhFX0cP1BD}(SKl$ zYa7Ik9{<`QwDw`8ti2;>?9!mGEBJYgBa&bCuF(=5EsZgPqXj7>`te90d&z4J?3>q- z;xwAeFr&GNLoCvQE$3N2o93;{2YHhpBcs{Rj|Nur_!7q+CeQ0gQ?OM&t2f1QY#c4E zv8j6(^y_{9g=t6yZcK2h>-#t|-CSQaBNN2YLOWt`bE^qWn_L=|4xSGH$>iIS=&8>2 zX_%&N@U%=!EuY4S7vljfe(h;kq>%WtK8+)5qib7Y%6NWZV#VI|Gpit4MP44fF?o3d zjtsuN^l2*ATIlojHX-&%ZW+zI*q43U$KZG)F=PCC$qIl3lb08o)O$=ME%~;kaY8W3 z-?jGoKBa9Yy=638JIb_{r7+JIK}nB^AWr9bml5wq-;Rj|&W%yqcfqd90kg(9?`LGi3o=b}( zV3Mab6aC_OcTAv|%SYSFxz!i)WE`dutv#bTAw{&V|Jpu*ig`Ztr=i5y4#qF?nYAFR z174eoH6`?%h3WFa1%7=?W7m2tZhN@H^X}B8f_K3UFV{8HQKpU2&o`iMuwAnDZ_#H^ zTv)vGw6vw4`lR8ghe3R$#h@?`=S8eoiT@w%*e0eZi*?%ZLj+VA# zU3LAJB1=@k_egP$4+5?A<EZXMLYyMEuFq0yCk+NmLDoSJ2!Q{S19xo@}VY%kuC+=j%;lK-tJ?Nx+L=FT>al zevPLz7U29{6xh+@DdWNFo#&$+gQw4EHs9!)PtgKO9c*BkaebeVMD3H_>vv6CNUrb0 zh&bu`J`Na6+&qHj!PAVShscrFK|4mj_8856?ICUO7@JVV{aS_q(ieIe5aHVfeWRa) zaR?ug!>|~+F)~`b%-X<`#T*nK0ItaZbnNn z7a~)ktm7kcSd+X>p+&MNWTdG_E6(YQ{nQkgh-~Zi1vqW=bu_U@;>gQuI}F*bugEre z{)1amVS9i+KaXNROlCLF`ik|)uK`Aj$8ppY)Pwxpmag}_ffzd!ybHx1U&x0*nU}{{ zc7=`z=oB=Y!r;8lZ#nFO7N0ak9pbr*wX{c}BrUl@1$*nUWF-G6~ zT_!XJjy%ok_3N~)`nDf>jR$aj^nD6_m;v&9MvJ#0H!S>~*KoTP>kQUsgqplOn{A$E zqtEvhmfYZR7y2;W=H(eJwqs-6Hqww9@-!H&n1e{g#rjLVg^mb)gO?*BTBFy&ps%ov z7%hGdn)+MJ>3%YgVb+eeO@;o(l7hu9&j)=-k9k@|EGg#d*bjw_4lTv{YpxE@SCr@H zuhr}4AZCF=KA>NwlE=~D98WTNdq0m7%cVKE*W=r^vGBW4Z|~PZ=mQk3Me$9iHLT4fk$CWP+ zJ<6q7y?*@#3^3T`@6s=n=+aVG=q{M4gI_}v>Y$gYTa5L-9T*RA?&NhK$v56^W>$-G z{bf;cbH->XbORPqUmix$Qs2U(DuM@(z!_L@+B8@)9YLu5}X8yvK zYo>5FZpoHG*Iqn^C1b{+0Q#|PTCAJC4wiE-M+RIg*B3gIxqw{TppS(n zZwJO9h$+&FF-IGWg$)k_zLy;_7k|W`Jm9Iz>xc+!zP-?g0Wi-8eQ3Kr4Qd?C2E|@h zMr8O%zZik8Jj4w@9&mH%4`sv)d5y{HF$XCdr*&Qj2bX)- z7LZ~rO*zf;v1k>%)~2S24T#2ozMrQOPobssL!cBF>m?2WKQFPap{RKJuyH$@@z8gr z4vSOH^$Uje!WToIPM%Mj5fgxK8}xZxYnb~UH)4y1RM2Mzn7kcy0A8g$Ep=V+>kPnI z_)Sq^KO$%2u5~oS87!lD9kdP0g-Zhyy-wWVj`z50Vw1O#nFr11!*Y!wGp{3HtMY3A z!6g_%@_ZPY3q3Dl;Pw4NI|_Z@XfEag5ea?{B8nDs0ksxKL{3W!+It-qbVj4j^FcG7 zoIDK;7DY5qgJulmE)Dlq(KckHk~i>wxN*Z{Q^XKJFlO4k4r1Q$TIXrdjMU)Ln5u`Lt(I&fi6e!W@*R zA<+~zo)(LiAK%ckL^+&5|n|VI#0u) zNhD*QhE=byL18IHCCu|dOHl{)PK9iSmEY^NXwJcpB}xEFNnQuyTIX$yES6{`c|J20 zcsw8*4(dD~^?pPrhS%H}8HyJ=BJJ?9cZ2=Z^HntCq3f%bup2LP;Vfg7&*@`Q7WN3d zc^|R$O(f^m~@2@zR~@r5-o=jQd=yTzQD2$XScgFX;2f7fX7 zeLw(nq4%(I7r2|~RBv-j0J-;N;ZQ2oC@6F4IbXGRqs* zo4gNzFf^Jx4aW&V)_Iztv&Z&81g^KCP)AqLf@biMc9i;?nc)4n^_bCJdy(pjm|ioX zc)UVzEMh8YL=i)8Qesgr-kFckT*mQ0pYJP#AuQT?|3w01eg9eHw71tGy%ezvw3eue zqCDGn;qVzJf$J;y9*%MOpwHVPn*kJa^8*6~t3dv4YSFSCza+FCk3+4=)Gi-_Pob+> z9fce*VOVkRVyFU6a$1aL-+v9uk+(BMizRmNqPavb=OD!v>o3sRc-vPnJ#vvB zShqeRvoe+rpN-~17C^`LeSp#p6XkutV$Q(jX{dvRogWS_Nz9__%x z@6)hdJB%Q}u;3TE6bUtdm+1>v=4p5c&`$F-giZpS@-#GOA{Fv9i_Z4zIdv5NH?|^S z`F8IzgFe!>uFxfEho95UKp>CnE1(1eM_vb029C+o2(uiD_OihFdO@oaO9G3Y>lYMu zxXsmpsi4FI)&SS{)((%IIOvP^vMtJX2xgdrD#V1#(*Qc8y*!P8)WU9yGX>*%o)4#5 zQ66)D@awA4S74aMRXJKYFLz=hD{Qn_y~$X#19yI&W|peL z&T8gem#?86US=f?2`euTqd?(1Hur*G

e{Ts)%=<^#Hf>^AoSZ}Z}FN_l`k}&kEjtM%$!H#%cIi;!2VjO6^ z(zBz=vrAm8J_hz2(hB|{sYxhRRd%X3;XZFi& zd*48<^HdVE94mE{!!i31TkGkpgaf-j5ddb-;z9Zp(xWsbrmCN$0jez4G(#wwTgvXW- zNO2iNq(V}q*T(v_J|m;?)n}VTv?M3WB{aA_!MYirI3V2SP1>&BL(^6-N2=xTvaw+p zu6=d2Sq+F}BomRZRZinsQdO$%SPIS9c!vbqqv3?@UY9QtB)GzWmh7wIC+{kO5*Bb( zq?+^o|}gu^*mHnYwmp(MK`fY z1~R07X{8OqA7H`4$PwUqxPS*eG)_w?{A6a8Xgsktntw<^^e`IeNv^}_MR{;do2HYCrR@`_m^td~({%TU75VotcA zq*M8lZ?w>~<@Fl~jH{p4{q1}8nS`hPty(#KB{k{NHyOIOll2$q=3)6wn7h|9la{`a zm!w9=aeww57#?jVSJhq_ywCO8RZlrSPR&RB>4fKJ`G$WM42)ntg|_dOMs9}N=_wGo zQ*mxQk`y>#&3CH}2ZVra!S-$|p#$Ye%pM2Omooma4eTH9%!!_HpdH(hOn={tQ__~b zMNQqCG3X&-r)~trkl4!~HVVluG^#M>v*dq><-V+7pX&CtkD6mnK-1(8p?o37fYat^hM3mnC z(~VGeX&OxoD7=F^U&JKY8cmZ7P2lFp>q~D(nZ=K!c17H zD>~YGaXAp8Fh0J7Ee3MY0}V;nK!mIfODoZ6BYY)aRU1~*5l9`gbIWQ~Xw_s{Q;b)% zIdbCGP8e@jjM>vjO-IC&R?OSyiq;tS~}VXBNXcTQ% z1gJZVdb+{(4MTiOLv|VOu17p+JPII!fvSd}+ z`hmev+vW;lRN3}mXHwYa_GeYv+LgvVJ8b5_kR414!s3p zhTpCaQNRi4q0(%oC1QVh7DNBA@uP{=Hb4 z{`$IDnaNX$^85RjQn^(Qo=P`#uja>vT~U-G3|;!~TamI`ueF}V6trSm$yxp>J>N;p>EB!?k1(AHMsMUm zA)hU8P|R0)yZvS(-^jT=5BuRWk{zk4qP#`2tA;q1-!1D1rX$vHnvqu{HLhFxTIhsy z0UGs@Lxt~sb!z==r8e9|W38D=Fk1Vp3_E5m6T`F(5z0cZ#9qW4KV%O=dxJc+j%9IX z7}N&(6|M0U-H!^HeLmD~xlcGR2*OT2FYEmh;Yez6mfjoDExfdWmw7WpY`2k8LJWCi zOm(^9$nvTfNiiWdzKGm%BgIbHklCRq`ecAxiJlp2*+Ev|HFMw8b4^D}qbR{F*JjdZ*+H%S>!5a_P=+m<3a4fop%E@GV6P?*vLXo1sZdt= zF-6i8+V4y*%p!KxD(tBz#L0durbz3Bn~jnNW#eFx)N~)0n5Jre$L0jOc1nFEe}HR- zf~9z#WoZalxol#m?$O&zV+T#}$M$wWxqla%Z4qCU^%)0s7E>%y<5gC zz8|;u2$H$j=!$A+uI>v6P@21?gg3WL$tL2>AszJ_Wj3og-TpWOnJxszz zoiML_Z|i`Om-KG|MEY2ZvmAWq$OI71Bg*3A`1llX7U!YJ-;aRE(E9y9a?P3a16N-w z`p@*K)Q%2WJOcB__r-}(`;>~gv9&_;tex3 zr~ppoV~YI)Cu6>B{iRc++W|{AO1j=|XXToWN!gju+OE*J;VdE`w>S!qybWyZ6QlK- zXq^daq3WeNj>t9xhBL z{ILJ24_aL7r*oI>d%9BUZ)erw(ajLeqk* z9xTiq`Keb*d}0d=)s|FNd@4jd#h#U^v@1j6`y|+jQSy*s$m=5dE0L+o0)|_DS#i=> z1J#vQZn84_ye!z7Bs5OcvONP8+Oj>Sa(SmNSgg*Sc89^oS*AtbBrZoP-Sof-a!X%U zhE0`>ECJCvolhRsXE7)u14AisrZWa{*%ZxX;3}_yK>q!_`+abb=MMJE&={ixy9s$` z%<$5RXimaeOHuewuH%wXq&QTWGAP^%ydK9Qn!=5TI#gWu2Y(9XPDlZEpxK@tLCuf> zC8u!5znk8DecII7*k zanfw1Aqur{A}xeH6Xo&#r4V%uG<%7I5ky3}cI`@8M^Q!M*OkY>*{1_;DBr{_254Uc z8-0i1XI~*2&dJ}6_F}!pN}OZAg_YL~>D_8@?jmKG4z(%kEc zBy&d|1d%RU@=+Zoj-?flEATnx5;%}ynS0lZawUBZbz72gOu>i)`HXfT@o@TqH*}E; zgcRp~jXyht;}K!iB)IIcf-t^t+MZuw%KK&b;w?n4uL4T;ofF2rQ$I38l#Uz+?%fs|! z6?+TrVoCpuhoDX$GG*YSsl&UcVc_!>jmOlK)IO6|Xf`y6w?~#cAD)RVWZis&%SeRLu{zkB{v-~S0g8iT6 zB~1S_f`#?p7ESPbp7j5?aQ{b+g@N_&yesVg3{f!sW$FK>aDNx-|GVP-BhSL|5BSl4 zi)Uf_t9s=dKVoBH{g=i2XZ+}UQ1rjZz`wcKe?u(-Ebc-diYdt2qcL`Sj2`wL%rHbcq4}l>wfMxptU@u9htqooxXg# zR4%WkAMxPu%H5_nH@!cP8d`dMc)7itTpc`oT>U(pKF;mnde#RD`0%E9v2EpK%hR@U zRq3{PeQwWD%8WOzPcL5P$qFqO_!OI>|75G;q_L>kRV&x=eNgMS1pB`x5P+s#>wfovTNy1ZZm}#`CvN;ufu2MM_7~s_G+UQxEA=QxkW32sy z>iI*NuamdxCkg${?cwL=A!SUo8XMaaAmeL0nvwB!q#H{DW~f`%{FYtEI^IiFzJ~Zz~K;Ck;>$gWRUX)$&hBg(F<3q_N@GrWW z8<~gKVPyirom4wsl`R!NzI9tSN2e0`D$%-)2;$)~Ys;0`K2jE$luM0CvZ5rKr;EY^ z%Mwy0mH?$YopM~O%=Rfh+q-OLL#UgL@lLhe_htvo=`VpXN) z+@D}ID9Zr(+^;E=?Ji9@6|I)W-Oj_yro+LprDoR>bGlV;09vN)PtMc!`IMEJ_F;1A zDCMYNHJbqx{NUbD6RafqZ%^EgmK-O`kWa#FY(I z>&pO~+!eaC({W$!2EgzOP5j@@rrsc=0WAFeEbzcWm7t-!+?KAl%d5bFw#b3@;Pb6n z;B{Ki!h*sy!W6~(miqGfk3YGKyMY29p#<<)9LnOf9?p2Y$95|9eyBIybI=T7Sf~aG z)wW~pode-N*Mb5{80>pn+27}Nd(W{mj&cqhn8!zi@U76bG@~MS&&n-~a6O#mw$&vx z4U2M-_$Q2RfAW9>>A-<#MDYR%x`xtFfy=HWWR3+$OkV&HPvt9V^->3^9-pZlO%qS$ z#evP#n}P2uoRLlaj05XuJc22XJ(?t*%Kpm>hm6!i8h1DR=)>84b4JgM-va~o1X!%w zAoQ50QsTe`?~LJeVoCHgE3v8T?ROX+4uHKqYP!9ftPnLWk7#N)bbemVv2XEUdj6K! z5bK?0(7`lo2mNqku^ISmXgG4xo+Sr$z!)i_a?}<$v-L?xubyxOCy&#_p}Jegu8uWp zcQz^33NJ}%vxSw5Gw5(OY1Rs5Xr|qIKyXFg6Y=$04xH$e|6^ixqfKflL6~=xPOBAj zGS_}W1YmqLb<{388jDWU?@8sjk?Q|pYEwO~de{z}ELIismjkMeIO#MqF3}9m|JG&; zD;cr>>$3rLy|lAeh>n?Lkp2n=?&M`G)Zbm+G`Q=EjjSNRV>kM`{XrIJL3u((LOb4? zvg-?hZYY^8RW=;~)uo=7E5(Z)sOdc2191@>nmw$pX9@v=R_(x*D#S#k;Mz-1NYB~` z&_t*jV4w%xvpP+PVTQGnMh)5vRS>UkptWBP8TL?tGBIxbiGT=*mHdDNGvT=!Kl}rt z#>oa+w5ro%H0j*HuR&DTbShF|P6Vti*upHS*xa79+=m@dbZl2lYb0H=J|@$haUpSj z@wn>=Le#V*!_aHnJy?qJ-%tQS>GxGYU$^gc$eluRhxCVOO_Hmw@mx4prq)O<3nwU+goLsWZA>d*LLueZdr-;-3{8?{NBVVBBJc3JhkP}VhzDAy^k z5|EvqWdbR$Dc6=+3{Apc3`UGR%tAPaEG4}g4mDWVSK~;l?pN!226=a{%|T@C981!O zLBg4+0G2%=?60IhRtehsF>Aq~o%>4b>|#G&8+^(u5FG1C!whmLC4n+0>;eKtb*KDN zm{-RNIN^vNKyw=0k7U3T1iGOr*rjV!dBIcVSm83a;Hwuio_gi!^G$nP=2S|cw_CKd z5Tdr$tAF!AfcyCYFvSl&eM&Zglp=%SQu9Sr^jE30L{DbULnrjmWA`=+>*b&i*OETW zh6+;486(omgT#BGv-WRs5J*rJ#WJU0 z{dpI<|GJPi3xUbBhAi}UydHozu}y9jb%YECVtml+X$0u|br5?^JhM7-X?mF<+A zAvC6(M4{LN9w>eu<@e_8%3~c95K(G>0yXnOSZWBM|KmCDHETJ3-4zEt8pbufH-iN3#yN=t3FB<&GY|q;fwuNS`#| zJF6k#jY_G2^g@4hf~00euZ6^LQsrwn;fbVNE;O0W%kQOV=b|$Xg_9zcUey$Xl=%5Z z1V{NbZictV4Lkjm-pQ}>O-wH^-{lD)@~QXWjota*u|w)$Vui9&9`q2#LV!YIf3Y`=C(^&$)ZXN zyl6y5lUTZ+(`Y@~%$Y~M1E#nV*dA=fVX_0e;A6qsq>G`Vg4}=%2M`^XJ z*GFy~0MO2L=>Ea>dC361@p2-+YFE>L@rs@nW0ltIG3}E&l2#sOaIR(03d#(iW1m-z2cY$7Xa2=%dG z``>jM*nkJ}Kt18_LB}%kTIl(Ug~a1s)0|+m%I;v%QQAj(*1&0^Afs z8@|A9SDTyj!~N#=KQ{o1T@(9|sOK^X3b(2YbpnU+>nPSjvzI2xXSM(-@Y5b%{ARD@P_CV$>H<)Cm9}Dn z6DY>zdlPy&6w7`}AovdA^qr^IJ!zUA$x2a{5XODH=th0W1#m+APW65xBaWy9Grjm` zvl#Ey4PF4gkQFKQ4vq245e(Nq$~t@ruBjq+(yywN4_rYp>a-+on;8v3s$l>~XyY+3 z7y!1resFVTA0cK)89#>`&)l_J5#~i72+e(2L4`ZwxXOTF3JkoALYX__;7YcG0l7;8 zs7uN9!Zbr*w6^_1G_}q!4o{*3FPE1Ki00;uKvF0f6L4ud3#~^&So{-kby~M@A!P8f z-pdTXb5eF8#>2CMP}uW_Q?6F5Y)u5pCQS6+UB}B*{#iT@VQr@vN2I)qqAD|RQ>&*C z6W)in#1_MzN0?%;ADTt5qj~{iNFI6Bcg2tm$Ve_U-!t2zwKmw3IfHPq+`|xoAgrW+ zsO=nL(TOB9L&?YN*aasgRw{{!Lx+9^82`^oG6(vs(MOQK8^G)l;9yf!)u&&Xh~7s* zbvfSbS%JxZ4pQR0A&q5-6vU_W8D@)Af+r{alN39?!=sDcSFFmwP?}OG-ig z+xkvzF#{z~E{roj(Nwhto2HUV>ghj7sRx{tghetm;>LsHg;Sf6qLDO_b{Mh>Z@MQY#A>L9`vds_ab;kZ}R@c%(9C~>qGGZLkp^Fh73H&EHc`hTd zOf9IO%H!*qq&Dcya}t(vp>`Z>2s!Lb-B^C*t}au4gcc;A*S5vp zcQ0>nPIVF$Sw`zXFvYkbF@!cDo*Js9+v4^Vz>v|y#h;ndVd9|1Q)^%Qvz($>gqdV> z1^`5je_XDBF=;Xt<`%ueJa^Mt0_iey5bdxy#VkmSeNTRoXba74o3X8<(_dMZPni;d zO=+2p+@Jf;*TX7KKqST)IR>A~YJz46;U9!hTf^JmJM(=}D~-S0#^kpI`NQX^lNCE| z!wcHXaBKtSV>{o)Y^9any^?|p2f`$-hF)Wn@NLX5#|Z}J;kH@ohJl1a>!O@P6$w5| z4J!(zWcCBm*Hii|IIyL!FG`SP`TdDn_U0p!n52&&>jHL6CB+OD_pCLuMo~fB;C}6s z;{7oN$Xd{2i1>5ZoMyq)$#-+>u%VXYWX9+=M(#w1-~K6{IX^j()HXKtkaR~H@E|l_ z4$z8X?fb+IxhnPDma}gEX|*{$;%YxefT?QbB2oAuXGoaS7A69ztQDu3kKhSw| z@_YOz3yV>N!Uvx{LD6L|#v34eMI08;vqT}07a`x;`x7cH{<2VSL6$hT!tSss&9g?{ z9>k@?p8@i)`^$67waj3?9LaLmW4J?a&jp$A1!Q)+&WGI&ZLRi1T?LWD&i#FKQwWD^^g83nczDJ24Y}qtdV%3UM>Ji_qEZ9 z2)jeO>Hf^&=XrZjnN1wOx&;VSiA)?1CC`y`BySukBW#FlUBEUPmUQS5l`OOYEBR=d zR4vjoZN@4k_wtzxF=g~;Z_jQmHde5?H<{sM4}ZN(u2g9*2bWV^Hjee~uOWzw21+R+ zBI!baSa{kWg!ofuUQK0Pi3&PeId-R{uOirWJBSwF9jt~=u_>)4(3f{-YG5qjL7Aht zDw{HHB?ch`vFdC@yu83#+xu?N2Ar~TZb>&Ih4sdjolu_%m0BPt*kY5(F^u(pas~iW z8-zjLDtyeU_HJ5p8pnh?v;PE`?r$x;ov@`L&ql)*JUf_{o4p&w*k+PqA==VHgm8i zhG>wto>gP__yOGe2uF95jKrT`u*5!xu-cw8hRu{&>y6L^MCE~n2*;?iBoD`mHzgPp zKV&QAu`EMrU4CKDo+x7EJ8cg}$mTVhL{!@WalOj-D<0Vx=ji2i_ z6@Z(}E6NMf5JicBUse^9*x{KZ?YFcmsD(`}!fw7{?-^{B7FT7-GxC=xCoX0*x}MA0uSiPiydy(L+-Xw^FYHri#-6Yu z(!1+5%?(0qIWQE(!vh}+C2hiu*knGqW4=IW)Ya5nxPYxg`0Efka%aAD2yoDNVHdzc z`70wz^B&}}tyDxwdM_f#&Il@yD(@F|3dWk3xt!%Gtt(07g16C{`&6J01{GJb9Mv>u zgND#f_+`Qmgv4k9n-hU6<*JAlQts>f0%f@7Yp1gtTv$Xn^`U}3l?6>PfuBt)6T@5|d-f%W#&}aPCX$ySp%!aDP^>NB%7}phS4Y1| zFSlCKxmZ8NljHi-J=Go_E0;f+t7lW-k)d;XRHI4vu(~>ERx}_v+XoQ1!!W*s496Z< zTeUf(ja98>Y9d4E^Z$?xGROmkTef77zTYd1u~8e zVWuW{#$S-M_GE;OX~J~X`TL!J%gw9sS=aWB2R z(WQme#2vG`{B|r{!>FrnB>L`HFDqwrqVT zBq&6jrEHzRumN@UdbN)Pe^5G~G;J+tXIb0UZ92*Bf@z%E5~V0UedeWY9nfouM0AHj zD5L*?rzsK^pR_6;xKNjS9f+U&X{9$?WdT|0$Po^-zHL3(S)UOn*nuDkhQyxA;9zR) zM#OzkK@y$Joa^!U33=D+;U$Vw>4#D@J%UB+Yk%f$Z@B?=DWpLmJTtplVG6=E7*iGC zm~O05;w5~2iUD8*d1!g^B$?S3Rd5h1qVoWJY!kRN3Ut0rVL>{Jt7F5)vL$Oj{J!$A zEeSK*M`4lIwJT4r4qJM}!;0h<#HjwQOhyy@jIWc+9bg0}1uGgMw01-Az8T4spO>8V zA2V;VA=6Os2IE4-B~fi_)f5T`!v>g)Vk-Tj)e{OY;O^}?6+V?H5~IEWtdm+snn=)+ zAGzy)nyV4Y;2Et%pz^c?!7drOvWXh)$;SNcr(M`L7T3T1&AY}k%=W1Z(g08Lgm}F& z#^803Qs?43T^{Nhs4EHKgIX6!u7&TRwS{--lACPqmLtgid(xssIaDD)#irGF97zfk z{gXGn1ao*n>#a8B0T2zf1>s|*VacBHAK(&0I^zdA)M%t9HPH2SpuzYf)# zxPo~xWqRj4+N&6Cj3SJYFMS3_WmV12$)q_nQb7*5<6yW_o*D(~x!ZM-ZwMJHmSL>< z+^M6eqwJ0HE2oz}=6spgOR+mmq8@rOSn4pf)#Nvey$UXd&O*!Hvd)IZC9!mYP+S=iO`YXxbJ$zB zGdUe_9}= zHm9uOC!nZV0Yyo=U{ueyhWVKI*%hhFU@`|F@UgSRIh^zRL=m|}JRJ$y_m1aSg7|c0 znWl4;>ILILaYmCaWH6~h8zzN9-3ptLILWbejkW8}z+D$2jAL!3c>GNXNL_r#0d0ru z^`^Snfg(j3+?ZemZa@jK}uy!8@$F2!svCGewNY=_iv^jPq;tiU^F7?AVY> z*S^4hdoz~{8{%dgF+yG0Eeg~(tb)p`+U13qD7x`Ej;zI7S+9iy9dZp*qSm7(qtl#N zAxGAYA9Rkap)Jy@rz2cg5p&=pOJ!eF>{xf*eb>d~g4n$VdHFHh1ZP+|jMcz0t5V_32#969%h$8uv32-Tb zyK&k&2^NOo6a`r>8}Ei^C|d66Z%4wf5nJ&O0==pgkE8~uq85!DBG-W&F(e%+m|WCp zBP|@BCq~&d|0F`!j)*Q%VQKPc_Y(c)2G#3uxivQx^XB$_>v*!G=#P106Mi*{ z=i2-H!S(uhxuqEYy#n%L{$$4hvigA~XdnI7l1%u$cFuk9NrO}5@MUU2Kc&y}R1-YO zFsa|iwXwhMB7~&?wx$q`9Z5>=j7)bYJvd{kyCf9h0RRq>2ni)5Hw(XFQUt&F1%B=5 zdHruNsK2*j{LRrJZDDKmt-~;K*1~6EVW<6`u*1T^Ld(L4&&19|`#sWym7ax`nf2Q^ zBdEm9O{ex3I|iL7KJ#A$Bi~#8gIc0f*U-dgVZdi#{pOv%->T&7=wjq7Z{YYBodzQt z+dl|3nEqa<@vov_XQ1U^`&$&u>>RY;NB(~h#a~SoCbr+c56d4=EKGlIxcC=QurT~J z7YyGiVP(euHt^7X3se|b*=d>nZ7#lXs=t60e@h0_U+gLWoQ%H$6#p3p^WT$c{~`=V zR(gB}W_DT*27E?#7TRxSs1 zwm^^h?!Tw-5dT!YTZGH)@~0tdE_D5v~BKCx|wAAew@?X@$`1Kd!%NEoBR2BI(by`QIXr+ z;s&=izp*z^(Zk)t)hGAWy`_5vr=~Xa#MepN?RR%ORI!zmPeY~K+2-*Qh@A2sha5PY zIG?{`Gj@>lmPS{;tJ?fAptrjF2(k5feLFN=k^2X$dv&va>qE0L@?k5A?d#=s=xV=~ zz7a=8*+iwI0Od9;lBLnT;mt!tqESyP(SYrIyPv}MY42=TB^Ysw@270slY`;==grMN zLIG8Wr#Ou6bun>O|IX3k*;aMdqTQ1AZXJR5!^XGT7S8&?yQA*{gd~-^+U4*CiH3BEX z5+s1Bm=YL@kg!hxR4Qyv(jp*3Ztp_&mAG5$_p;mLr^Fo{POVnsG9rwrma|EZ<1ltx zf?#sW&bYY{&ctHI>avvDsO!o)mAm8aAPX;V7-41n&g)ii3-p`3#;fJfDXuP zPT>bHoE(gXc!pWm{Ssp{gE)pB0sw^w6gbPRwoCr0{bbi(4-3p6?1uqBSWe&+stDqI zG<4soZ^C>ZDWx2`&EsglaglbjfNW_L9@(Wewpo7?-gTCmmTV~k&;uy2Si)C8>fTbV z7KfjJdk_XU@Nf^01WoYgy1oKz6k$eDn4*L*K%@&Em4>_pgIMsEyGkH?91i@&02)s= z)G-XCds6TjF>(X!c@rpb3kY>f()qJlGH;GHBoevbsnyDi9Xe&x;fHe8aIF^9KxT>z zZCHXO1GOf+=4T=S_{E>5{2AP*pP%;ra9YGEq`05AHCDBl_jJ$4KGTV}(_4SaBoabM zMGguJx5tZUbf98HG5L&P;ZA*CYr#<03q9g%i{#HaYo`;*KeeEK6)^)Pot9*DI15Mz zt1PnEK`l&`W_GB467wm&bQGu`Fb%@z?&K!Ssl+{SgZ)q(_76s%TSR3bAmNw6+0U%T z+A+&QKVCM*MV$k2p$6lSM3366?KOa;!g$zT1B38eHZ}HIa2ZQ);vr6FHS~hllM&RD zI&;t)Vscdd%ut+C9;?&!_fb-5>|T|BsmW8rg8foeD-7{lSqvTXcik)2;T^*=^Xq@udBOW(|)0u9HH+Pcm4Mec5w9(J@UbfB-J6 z<0I@tyiN~R1-C>4E5K7zslFe0aaZ4j4>!}gjy(_d^~ImJ3Q}jI3S(9JDuoc~alBg| z3^luhgdle0BNLuopkauiP&)4&x)R_-wPOR<-#0$|G5{Rbzep2Hp1^)z4-?NKC=s4F zO0F}dq=Xh=6nkgo6wm5f{ap4pAK|OS9-DUThXoDx-1=5kimD2gdkg8sDcHA31#Q(& z6zzAr63z{o_VwqP!&e>!j(+Ukqpu9rb3L^Nd$zD3_FJWy>yOG-F<|Irpc24nm}%Rc zl{s`sk7H5-j9>IG5RC$YSC0pCc_wZ%q7#Xvx&NHTkav@%+SHDAt7s~vc5vw6tPs__D`d5|dXMkZt{8n*^ z!=wn>^w@s4rX`jpbO=cn5xtTdS>=R*lyTAn_y`|TyBtxw$ZTVy>sWFJ%TzU9;OScY zf24g=uqeT@<+g3xwrv|{+qP}nwr%rl+qP{RbMD`pnfK;rzPchhvm-jHt23)|k6{i) zOPHZtWINaPLC1oSDA2UfjKb-ZP`q5I5R)g;VYxxUa?ufd>CCQtqg>~;6!IX1m7 zd2>fnR1)4qa+t4xoBE`l-bJ-)6_^E=#gTo|w`q(TvucYYXt zMEBOXnQPqkLlS6avVOPdg^=wow+Pl}>Yd*h^g?dy^3y3MLL`$V4n4ui6f6#3f--*q z${&^M{*j#%A+||)>1j^Gs}o+@2!NBFybu~o7JSUTaeOx0e)c;nPO~>)B=mzK0P}4< zL9fnuT$Xj1OuSsIOc&=aL#HIX&`m_S{y34`MFS5@7lIC3WAN0T16@YfMK_%!=%LH~ zkj=t)>Q!N4G1PAxT!BkK6HRR}O78q60>b-=94GbZ3`Gj9jK3!gEAj`tMC`1CfwD-VNGFSEum|9dOt4Gr7=S^t z_HW`qAG2Q*qq#jhETX_T!8+{GK-)MA>d7#jQ-Y!g)%Y_vzkG;?25$!i6}|;ok(chd zHO<`e{^RtoU?J3_qdyaQ39>4a#UwAkJslR6q6rvsZdUm~ni2??B58ynm12n5xZj2d zv+7BW4gxCLn2Ms95QCzqgod3VtkG$DZlvY@T8(WM&!%y9jUi$*S=Ey}SdNeKJ5?+s zb4p!d*6^e12iUkbD&RfkrEkWB`hG7|aBu34*>M#_e^@|`U!r%4hH~U-mHQ&rY1LY} z5LFrpHe!nO0Ws2J@e%NVHWL2aK?g|(#)Wp`T&8xibYe{01nK*8n%HULoBxl7lVtVk zlbCB~LygL3Sj!wOcg&jjVb)+w3;zfXf5(%uS@#haXiDZ8E`MREa)X=V&Dmq1!Z(23p6TGZtw4Bu?pT z<0XjjiRJr}6R4>n%}u}oD_BHM17JFxGJLlREc!mtCg0Vcgmc5)b%L0e#sg^qj*;CCUA(e47z9Hx& zTBiB=b+qweO#p;at$!~mxj@TQR`N(|%KW(}r+GXk2|=CIo*mrooHW*UHX44Sb>@Kd zj@G&C+#3RJLy}H7H%<0H`vG?E9W~BIJP+GY&H0Wt@XEuXGdtOafBQydk&9CRXuwJ*o1Bo394B{(6{?yEQ>3X|t^K`Tb=E#eEEJQ5%OEr<2QovV=M0-9 zBf_oP`lMJFVpiwYm6!fG&<#kY-*$eJk#Hh)xA=V&XNPGW$5Y&eFqvm@v z+I}?H4idrDg9g^W)jbqy%GA(*o<3%c;9@Md_pQw#JBaDTljG{i#c2F>&ccku+OF+u z5irEey2mmX;Z7L$=Ct@XP*{RXc@QR_8@F zBg)p)u#}k<=W3?%ct3}jX?`vP3z(>Yfg{tNmFsJVN?PvQ(Fka5_QE&Mrbu{4{tmFZ zzpZqChG!#-C!h!uwab^S=f$bgVM(`{#pxmWfRS*VFiCmtohlE!f@b{rQTBC;Qi8jI zDBxMTE;V;C$>V9Ico${?E!ML0ep#x7bV=8r$*D3szilkflB!eJi<4^|L%;I6n-_bi z7!G8$MIT;l)k8-M{_)M&atWyQtR_w{OD2Q~uI`mW?C_Gew7=;^#d}+kNBQ1mdunL4 z=g#wYD|ppHdvHk?52=bYmhHFR<|sbET=eK^iYq^EFv(9a=@*5uqsd@dcKi~d`*0y1 z%OVPta2PKCJ>H$t9U{^1M?FC7&C`gdX4cAO*xNw~Ic4{{=-JglBDo*#iSRmi&-<;L zgQt7zm6U9R(wO%x9!GED9s;klZDN-=ZV02qSLw2wh3nx6CG+(FN0v)h3CSNMz}e^I zHk6O9dr`@spDib|F+d{F%t$+y&88UOW&z|Oqyjxb1gAU-IE!AI`i?sfc!!%-8z?uh zGE(G_tp!mKxp>x}8osw0wjVCML(>M07`uFjr-4>A3%3O5PtBkOL+O3NL~A4`xpqcJ zQ;||48x2F3B-{)j2qHETK(H;x7Kf+sc%1~AWVmSyw?yOBJnwbzJ)WwK)@4*`Fr4+$ zdHQ*<8@*es0z|4Wq~X9eJ0+O6fH2@m6ifcx_aeB2%*M8C6KE!;TO(bZrU}_9ZdBso$;S1XqUfXW8Ypy+_kDDH0qcYmYQPXxOuAs z7*Sq(Zq0H_e{`wJ)%1ax$-EOM7#K;!EQ)x=OQcs4N}J`ohi$;u>}3HIwoKX8XOv$$ zZ(e+Bu&Rzd>S3*WYZ8ilgy_Bksh`)!MVO$&DBCl+j~3%9b9o$E7Pl8B1hFcWINwB+ zu8I*ZP-64IArq8A+QJ4~68RwLC z0}djy9nNhqGm4;H=Ps`72R@ePv!M437?)-flAXMuVb>n~sK%n(Pjc^}3Qu8RHzQ4c zT#G}TssscFT)j_k9W?JZ_wNOTW3XhAq0;ZpO?X&y?-yBz2g=8MZ;Jlc>wZ!wO@{Q5 z8x=PetzdYlZD9zstB9gyU2T{wrEoC{LCqAmuh?J&=-BccBA=SSjD z$9kYQrUQ-XhTCH`gi%fH5TnDcFg!S7zzdpm049S1X+vmQ6n?U3hEbs(F@eME7zo{+ zeLXCx#k^kfP88p*5Y`~B}uwM4pZeK!>sTbudk$Gz68$O z8ZD1KsjGqvP~vYb>OV^P8vo)W5}&}05|?IZas~mFE{Xoxt|8fI-{`Yz0$#a;#!y>U zAC18vwgr>K(3XxHk?2NO#RgcFUqNhOqsnQCUCD*1%98cB0GYDOj1}2sp^z87OIHOl z!w=W^xGk7m>l|#W=%p1L$opb#oB<^E73ZQM7nW_y4=&9(x%7Q1z|ybadt+>p81g%1 zHfJ#AmfT0IuEuj#=sZyh5*C;lBE1XOcuIZ*`|cC!S4_nR%G1RAPhFK-A}7Xws4&(5 z(0^y9jr$7W%Ww94HgN*@s2+0#Y~9f=O|~@O*WCOn$%gPd{cDuG$bxin+OU$yL==+Q zUZK^63Imi>lEn#%WpESU82#7qj4+5i+~;9pY#_CHGW>L(Xp3cCcp-1kNq9?3&q*TG zc`H*LmG>8~G;eGg{MO2&hD${0Q5egJ~62@A%p1c;B2@*&O-OB9FUzwh%16WoBGXHT9p0l_m$LC zzz>AOFbUa{R5^Ycq#PtwgNLLy_02rqq+yXG?G1a*U&1FTci2+n#fclcLqhWv8E%X`<=&$bfnJbIQpTPGgtMjftv*h~# zuc3ClY2~dsSgqT50h+R*%)_UgfaB!uTF3{ICWe^kgMaMXg7%iSgShlVU#Q!4ksKDj}=GJi}ZY#7ozEfr)(k)Ej>d&m)|b?Q$2YLpEE;mziD% zN06`DaB9eI!(hX4eNuQvvB%ZCtp!gV)2Ww2hS)3ex_O!cM1q9;iv$h(!k3JUmt0@* zD5I;pw{w!GN&C0=yS4%b<=nWt@gH2QRl=>89bo7ReE3h&UyL(foW=l~&CIiDqMZ3p zFf6!YoMABaFrt=12ISuLsN3NwXsM;PKT+Iu7(Uj**q#xcuH;1g|h@C zBHlqIpZd|H>(^MDcqJFDWJjVF~{NP`DejKjOV9fto)p@zZ->b25hwQ- zAkWT-ncEXT6;b`1Z)|#5y=K)^{PKjjXhxjk!4^wzgf?w!q%|%zSMyd{jhoOADszwj z#oNx9lmYztmK)tcAFH7T+OnMNBge{MRurY;Z^_b|BG<`t&=r=m(tCS}V<=}aT7RLX zxznvFa@9W^qsiY()83i}&(^CQEJ3)o(+7Dxtk(=VSIuIo zV7zNXT~V@kc3{<7p8112pE7I7iZt9>XH)PasKKT~IRk@Q;DTKNXI9zgVtL141LTcZ zd*E7eW_jOya#e&sXTVWu8{2g<>SB}>qPnd9x$;@(+*p4JD~1hqoOt2Zl=}LF>Ub#Y zb$tNEVLJ&nfn-5HOD!Chc_KVxLkvvuoVO_})EwUfl$^!6d^g^6;9dyx9fx~ASrEG1 zsK{NQ%60S^DB=ZZO~RSzlLJ8ZArv8NzdG-CN300s`S*wLM0e}dN3xg5kl&CcH+@tMu-S6Et7PeT@FIn z3r~p7j+!b#Yq3Bt#*^mCCPqcGU-O6RKQ8t&r&uu3?i5q8QV0i}xsMKt29WR>ZMmyI z=7mV$hdDk>Gap?oK2AnZPV|u(F`U|l@m$NhURI;zFbR;C-YyQS>lKwTuzzu4I9mBG z$%)l&Jnd`^W1Tr&3I~C9aFT4bJF{)|X@QLf1_{r{N|xqFHDhL>WapawbFniCfbB2LU_BsC*rO1GpG5#0 z^6{>0mh^9(A}$j-aGi%`aCykIEnrk!W5mdE%qllPu2eSuw1X(qbC52rYR;|WInBBU zw z>&xBftrRuNFnmSNQk232kC9+h2}4G}EECJ-#>cScwe1j>cGtCxkzj$k-< zCeFL5j^q$LOXj{rBA4L5TZ0@Z%OUU?O-2q*;FOD(>H(lT0g2#+^LL7&Ba&_HkV81Z z)&XE$g%r9-^noOYc$6*EZjM1767)GS$bD~BWJB73Ow8XM{*RsVI)xRv1laZ$^D_8#G)*Q z5Y1c!_(HP!nH>mL@e&>qTnrw0fAEF?C_2FV3~idvPJM=jW)03sO7evR*H-0Pr0)tE z8aBElEFxMrvwf;%p~cv{9LbaB@|+OBips_;!G?Dv;bPJYo+*;cWfwG?g$HLmuw(&} zjnTdaLbi|e`-Zmome17)jr^w8zccYd{Irf{Tvjd137VTZQ5CK_W%e>rN9!6}s^|m` zN-Gh~M>!FIEAHb4P0h_Y=X9n@4^cQMSJGfQZj8tEMP=R`i?sSgm7)Vti}1|HMH#jw zj7pJ2H*`07+zDinJX&KaR1__lGDrVcYP;4lie;$_uw~Y zt6k0)m`(OhLW4 z1J3`A6Ia!@GE1N#OHdSxXP2iZ5aC!#KaHws;2WxGg5*IG6Wc>twY@a&?M_0 zNuIK>5{k9hkEa7zxVx^Y%xIw5H(&L~?jzq>aEw+3Db(W2&)u$dS?DdrNjR#B3C5D> zI#jn3AE~-92?j}<)Vmo_xe<|QSF`R`ac}4&T0l>LsY}!m`P|6a;|`-Uuq$Vu_YF`* zss=lCaZZtmzelL*^8#T+m8p)D!}9qzOJ|p1 z5m`>2y%X7&Qe3f2Y$&UC10u4`3M?ULi)&or`P&?QC3Z#vvgr*GY7#%cpe&Qh>;FA4 zg5|$bjr>385180l|Bni|j#d(OTZ*rG$`3I9_}ZeS_D8C_D(QIY>xm}kye(dKa^zrv zSW^b3oJ1_{@hbfc;9QKYHuj<;l@?u$`sm~I==Dwa$H_n0ikZ{v zo5df?=f$YkurU6=?!WH_zX#hdA1A(Ey_{Qr-v$qlF?~N)zh5lp#MMxXK+CE^+d$DN-H0|{{mj)?%T8w}mRY~vf8Lw&R&LqQ zy?c5>|9;B0=-T{rd;Z?e=J}9UhE#rTR5nsrHMOR^6&ST z9RO?nx<2P=#Sig*b@&G7wXS|Hqw($8so$AB!}a3B->E~yCSMkf39h;o^1Zn^#Zgw_ z!&O35gjm0SxIS+#|6avqMY;MQ6{7X5X)ozUEVj~YSi)qX@Nq82qIxH8YB{OPTI%YA z_oJxp&3&z?$EKLfvlKZxGW=S(jnwK&(H>kLLLCW81NoTrUQ~9LbMYVj<@0+fq5%}v zu@n-l;=WI-j{Q8H z{dvn;{uUWCe9~-^OLkbN3_3SAX}&uYVQRsTUS=)qBzsVo`LdDf3~aqzR{Yb!z%#$t zc`T$<1?3G=0xCL%@AvqX!6I+hxQwA1^X;P2gn+*fY7si1geO$adZyV^DV5MmR7~Ka z_Z}DfkVc2UMd2qq!XjDK`3u1Gq#B zR*neTZq)um8t9)qSs}BCIt93|x#=x~6-*N*`Zm_+=nwe&1PNfnzL!8}`E?A%w{@n6 z*F3sGmX71_d5bgGY#G_moAiWwvL-|$x!z20cAd55e`R z4MY;>O#2+L@X4FU)1fcvH-O%)E4I+;r9HLaUNR8X3tWmQMq|FU`@MK+? ze3ldnNe)f@UnVA~r@Vxnz`B8?F*Z{B1h#=E2)1aZxq83UtvFkWS4=2~_UjMgR`9%+ zSD-;#dhXrvVBK)H0S_0oUoGi@&d1K2OT2^grt&>!G@GkiwL5AwUc(w3(cvs z&_sPB-iIQRH!kd@^ZYKj48L_e1A-%oTY+#T4D1Cd(m}>h-@?0@o+p0G4&0WdqxKy; zbINDfup@K0an>)G{CZOiNg3ZW6PJMoPE?6F*GqM3{req(2X(!3Q{8U@`|ia`C{=iU zyWzI)oW3~%C8u(@M4cL0)nzI-pyE&F#JQ0>YNw_eo28D1;b+r;U4+Pd+9n?59)=GCB?l7T1uaFDw6@EyApg>8Yqr}Ts~1$q*$nF1M(c*V|&lx0VUIF zy385E(})?4GOL~wd@{jvox&wUlrUWQIfo}jo5_6K)Q zgjoaWHs(Lxiw_+1mbZ-;kXJp5_sKnVLI17{13OJjA-&|ZR|wrtJ@o6g(>sEK8fbgB z!|kp%Tz+=95h(36KzZ|pAE<9$rne!EidI0o0=Xk1%wA1NF@lJ1i08a1f6ZQQD6kud z?oOqr$+DCfKp?*I=T7ckr*>kFgp@&ijd_eVEll$$j)0W3e$MTO|2;`rYaNUD{gX1# z_#=1ISd9%ubXUINDR_Fv*w!_3i8C&d;4$ax7>JLuiid2C(2e^!yLK+Me;QyDEduY#1z*X#WYcC=Y)uVl8^k2hoVu+k7d9U`>S_U0U+N1S=XK3K zxvpcg9rsm~HlmqjRbyH!2ONi-GO9DOYEUlgy+@a6RHeYt>vf%2Fr>>e!idB$RJWtY z6~jL%@wAzu3&-S$ja1JG2%6|tjyoQPH-5aJ=S3mFjTm>VP(h;XsO%{034&D5h4w5B zsl$GK%ejWwKtmZgwZ_G)%w!NoYaLL)sMt8< zSrPd>k#`t6FL66C(ELN4*Tkc3H{R684PXUE>-UPV$k9u7n4&qS=#&qL`ELQ#jq3(% z!S6yhq3Z|#P}u4~5iLyqfq9%>Z<%V0m39?jP?nm=;aSuXVL}lcUY|tIyT)QoV{lyY z)HMk3!RQT0ql&EL5$a_L>1c4Cxwdez{0K=24sCg(&qWz zmp>%#WNb^(Y(DNR6Ln9B{iA&uvq@VDoSefwo4Ynt!muOaepux8>l>=)ix6+@+5S(b z=6CyIq=ToEKYvU}(FuZB=#4|lhE=1(x6!R|dSv(dt30QIqB250;)+!r&3~||?qqB$ z)6#*w!Z)PsKE`J?w(_ExtUsoMu?yz;2yleY9$8L6E^9~fhEp96PX?=6Y2Cj;-|UMH zDDihd-tCL@gW>BoK=`^VE#{kb`L?pG+f1*m>#Yw@2dhG3Y#l}4?lv|$%LX6@JT;T-{2ISCqD-9_dJE69bwn6K)&_hLNAr_*T7?_;QI~cU`Xvs)U>=6>P z@~XQHe_2BR`f1N#ia4ZxiZ|8+T1D6Mdk0YkE|%xhq)`S+M%t^eq1>b00FcD&?%u_G zbqULA0WK=H^=4NB_`VslNlD ztJWT?H%)u?nT|BHx&iy6h)=)$l?S(;0d8Jnh75YqXhP#q@$vq%j#bHEu{nA0MV}|O zFa|5q&)@C?>w7zf54=CjiQ&4Eo}={xKFige#t@#(u|3Qwbm#H_89wa3iLen`C?|~X z37ii2rz9mDFk}kHQI+Xno>RY5JXJh?+Y{*IW)3t6w>C6!+-*VQ_lP{_z-00zL4;t z+aL0o10qGxr)830Q7o}J%x*6dAlk=+NBG=SnW=L@YS>-G@z z7+LBN>rYLA$yx9hcvH*y7S^try&Kb3Qq0(p(PN!yzPsIK`JDZ}>-e8MHdFeP4F@s| z!)r3C?HLaE5!=9VDZF(DXa+6nXPLIG=KNAMBm-@zOvjc;!MO&s$b;fm4O=L;jr|KV z&EFA42+BuOIyVgJNR)EY6!Y)`Cc8+ep@oTgc)n`(XC~I+2Z{4s>F|ghU)>EKya8@w zSu|#z*Ci(WOr|cxZjpvg-gj?^i8E^mc@E?ZIk%{+f_H_!=uz~4UiL))TKU3OB6v-- z8&3H91f*WGnf=T$D+vDbHY?5=gfYql>~Zk{Dur}0h>TXk>zU`~&7tKIJ| zJBBY|P~9P+1<)XcAfcAZuw6Dn5d*92uhqjFqT>}xdBz5;B_K}^Fxw$KwgS;v{~$_{ zcksVLN}X~DXh=rQ@bgsQo??j!5Q$sEaYeQ-KD)J(j-MHFKJ%L5Pp(4)zAH-_%C*a( zBs=C#xwtcdunt`OfYn^t;)|{x`FsG2f>RTz?Pl`q^_78y3Mj4h zFT(N|G83RVDVBV$#NhSJ0U9M&>Str(o=tSy{r&q5Fh3qMCpj65Va2Hp*dz{H@%4>% za8IH02`%Qsb)g0IsfB-;8x_(7mzvC$3bK;(w6D=}Y9hMo@%>i{?#-_VD9 zvuy#BLv9xaRZ5J|&=F#PuD5g8PT=hEDdx?zK>;l+y(7!*log#joW8FM8&%%pm2RvH z8`Mbf{IkC0U*^_QzI;*0m!*63TE>l49g~A_yWl3|TK#9++Al36!5Aq}ou%7YC(@IA zNZ01{KyB+2!V4=*=E}U~or2^YFJ(`8+|3ZYae9ha?Y2a4gkn$$q}sQIh5-HjsxO7oyHM=xn@A@hm}l8bVBU60R#PCSks^ zTql-N%4%Kl=|Qj_sdnf%I#n{f>Le*Oz?Fp?+vfrp2&Zf0T#sS1Os{1m!$^Fr{d88ENn{Jyc=2Oa}~I~@-V52H$QpJ7+BtI&4g+yUMs6*Auj zTB%du>rv_Mq9L#k_9$RY?BrQVk7-nbb`|TXrw7fWv0Wo5JCW9w9yN0t0WWbKwnU-8 z+Z#AzFpC^mq(}yC{X-#OHr|At6m`RGL8fk>E_M|gG*K};9Y=_xIZovaLMX4yZs@WB zNCU_4MO*L$L=WT{w0y4M01|a#f&rBaC0en7=NOLZ62h`24(j>e*Th0c_=u#o9bu)< zjY7(%Wu{b6IQ^ntAao6ovfj>$YH27>@^nR!@=k$*ij}mNRH49qWXxwO8ge2rv(Zad z0HIJ|&_7)$bRC|wzW2`rd-;s0r_p@OS|Spv1&mfIWFrChkyTu&04>y+s=3j1>|GxP z)v_Q%p#WX1_-Hid-dE(1Ne!l@rD8^`29jg*%@iSU+3`k?R|8M=*+V28x0V_|-y6S- zw!S?1DqdF}AOLX224V6d19zGlyTOyVEQX`As;$W5I4HjEXbO{?tvdQClFGuwcyy_8 zzN|5*+Gr5&=v>SoY-u96bglnCKS#3mUCyg~*#2HRZ1x0#u>5u zS?Lv6Md24Wdw$hX06e-$G;GWx4D5zosmQ!QMaa&1><^W#i|<{Q(ylPAgaoDKuB`bO zr6OhMI8wW=LI;>*``KrsU&+76NV*zt&m+HlqvRE>(a`LW!v7EfcWg55kH@Q7lI3^% ztQB^9fs{w@w?R14DpAub$K7EK8_E^YL*JGj`>K z0w5yd^SrzBh^W(@Od?N}M}69+DtlSw#{8dJ9nVjibjJB9Zk@2C)Qk&M5DozOb;m0! zJ=#U6yV*Ds2M8=qN%Pfogf}Y>#?AjWkI`g;OdAv!#6_P7v4TvQ4l364nAfsyEarCd zDi*Iuh#*s!f%Qiin?rEd=IjY_TFkNZ?C+@NR@@IpY__6WarNYhb*^ut-YAK!u~K*A z%`Lb^jQCB(HBKaEVFofn`(-u6fmxzjn}k?R{gNA8T$PHctu2)K+7gypR*2co+lw+OC#}b@$FuF zcbGIZ(z0x*2B6Yv#WL8q$Ci;9nh}cFjNU%$RqJJxrpf0|UCS%(h!`aDn!wV9Zb>Y7 z2<<(>UnmT?B!I|X%InE90B;ajJ-Cll$T+62vi6X~y-zN9C$6**auFbm$`uF(?bNp^1s}=qeP-J6Fba5qkx2VbY%)j)a;p)xeFX`4;w4pXI=1J%9#|Q5oKc zMs2Ev9c@(k?6BZ~(nn_S>0W_B2!E09OedT#^jS#y>#2c%dp^GfY-9oO1;a4RgN@AA zsXnzGOApRVW|#w1-BG$>bO|mgEk>(hl=#X5hoXh}__!$k%0VSi-XyL9w~P+I$vCcw z#H;~IlH%*iLB!r^&B!vWd=iX&{qU@Oq?I}OPp~T+$vEC-5Sr0H2T;0y@shWdk)&xf z`OlUpAI85s=3=u&eoIRmMaDESyr0h0wM;k7ew$XmD|R~#XQ%y#!(5lS;Er6-g2)+F zP0Tk^%8gsq1rS%|A;pl*ZV?S|H0(ZoB|Q_QbL}W;S-gK%g{H`{MPfgwfGoZvpFLxc8VL`xix!x}m)cwNaJa&=~i4)3fc_WYuU7t$45ta_eiXz2f$+Xz>28@-t z8I(z+^erzru;n57!(t3ypJWDfUirGeUlx{U=1Fvoy0aEPEo zp}Iu`2%S+}wxlVs%FDqCFxOlUCrJ*q0L(84XBGC=H z<@N|ay9c9t0cjU*ZG7m_fLYD4NowG-5PS6v5bC>|a3J!f@QA)Q5w=%s0oohwnbH)C zkq`oN+l#Am4;@{<}#Ks9geQ!*@!t8Dv7@L(0% z6e`o1;dRWr&ilQyuwqo>mRI8viXJ%nK`zVhzO_lb$hHi0-WNmDdKfI~!f&41qT(^- zt0?)0;sgx0^()+pyZ7halz&;TOc#M8ywr%qb{hj*o|E!<@dJYGF+X+N!x8e z1eDx_+yc2f)3=KkJUm#%Y?sb% zEW?)+D|Dm6acl@Ye-TJ7Dg@kCe43Vro+Jc$xUe65vUyX_CFtRdJoselR6ZgLANlkhV|N36eh-W0Kz8V%71O%v8 zdF*+Og~W!Ny|uowLo}$I5?lj0wtwsu(sfD+rGXL-#Q({IZNI0wclQGwUnO<7`&ZiP z0~ar@1;|_Wf_J4@s1{a&hywPl@$X$w&14Seu^RsNh$Isdp|J3NCqjQ6SNh-V!M#z)KKJ<2M+YjOq z3DBW60RRsz0cGZc7C$Es0wdS!r@o6JV`_^%*uZ0TUvg4?R;;3Y6`|^=k@!qX%~loX zmS(jInOwZoqPs10#;~BknDsryX|^iL8R&5fA?dX$&IIV=jW1~%AR2{;R->Ys?=3}L zrlfvFe{jm^Z<(kyx2W#fgVz?m!ltXcqiSP7hWRrOPQNEPCWz4COBSstF8vWhtjw7M zrJ>kI<>hW+LKcp-wdgw97(qB*aviAq!HW?ba~)#SkZ1Z{Qz_AOeSv!w^b=UuiRsN* zRMDb|z%J@|&(!%u#RemG5nkA@+L0xI{7iteTh1I1>KVd3^n2yjzZ0-kTJ%b(34dtY zgZ@A*8g;E~Mc8J`YENK}#z8253s?TwW{`4JyTpyNTr@yMeU@SCm6eP#`wNWKJ_eG8 zA97LC&7Fa!XJLgl0OXfU{EQAj?NC*9iLNb$K=XLQqbofb-Lr_AC;R+F_gzfaj+T+X z^sP^0k}IrEzJlp17|%IDcv!8EU-zKHe^AwFPfH}~uv0baD)JkubAEwjWGGNZr~>+- z{!6DdRad0ux;B9cWFB5=djqa#HD&jP)OeVZZB@Ks@trt1u?!1$a*=jj@%lyHJ!uWg zSy9Y9Z2M(vLcz?|GF*B`{PLckJXVch3SwHM#BFwd=(Dhh4aC=~9jQtD_h)#%xTf{{ zM6{=%Mnh&abU%Xv6Fy8AH^xe0(j7Em+k~%U`=h-=0gqzTH}w3iEg9+7tv0f*e$0eN zU^>N(%hOfu8om{Qud&~L9s+%XU`b%`K^PF(m=}a4RV3j0XJji_~A9!ose543xZ``+ zdCkX`%T>cbDjNe%c#zC@0#TI2N{I$WM)%Sj-Gp9e}d(!y7lY%f5FEAnyvo_e8PX#6Zvmg0$5mB=>CaxF#h8#_$Thb%D_p-_Kzrl znURj+|BtMIgZY1BZeaPZq8|S%9x!P_a>Xpus^Oxgh zZVRKWWmewukw6bQv~@AI(|0o;<5f$0Nur-gSWrbTb-1@{C@Yi zAIw@EhX03=;QoX}b7I-93D-14E8 zWyjC&=gR2Ct~a;-fW^1!#72GMN4@jA`Dn&3_2yp$I$7CxK({8eQy$(o{JA^~lVsf0 zDdNk#+&8TJ_4eZ8kcu!4-!*99mX$go-?d#po>FSvPLHaopjfE6XwT^NUDlEQZ6QaB z3oT++x6_-1Zv0aCc8NsN5E6F@-rmx!i!R-+@XFUOeh=4s>vl&88dkZk%NJnQhJ^RE zX}wH8yqRMW*q%(AvyDO@`TOVgG|JPJUX->Yo!(vPpuKh?^WC@zsVvu4LNcfpM@I zFYQq*9YJA*V^zsg$>9aw`SkLvw}X;WMnFiymYql1c**Nhv!}(1LY4H%u3rkCya-Qp7YfV&Q3l{Y)rfiD( zUn-B96K_{wIa5mdn|-1Z3fA^l07LB?U1~L?iay5Ub_`3ar5#6g(frxI7v8bG0 zVt&2}yT60OBYbbHB{SL)vx9C>F0Kf{-_#E&9FnGWO_FkE()KK`$Np0>gBe9}pMASgqkn6J4| zV{2S;!ch7;DM6nJW4q)?lIkOKLSOm+^xs-X&DuBQVuyVi(AD)ymzbodWC! zfKW|ULQ-WDHI)tUh=)|j9Lia?;ReQAumqf=Wbl@X!Ywu$R^yqp*$xt4+H(D@Zi(Ws z>xLZJLiiOjC0dZ1@qMvng}_8q&3y2kYcq(MEJq`nKlqW>ZsTZ2PfRV)flU%YlAmFf zKVr~PLUmc(xBCX#GVvWzYk&1qO~}pn0N@|?CD55N?ipDEnIfC-Ku*;NBV=Od>f2H> zd7Y@8renvC$d5aR5g2F6=yQph#+{Ea=%mCrOFbkt0&QFjXj~8^%~e8eu~cy!-6qmz zkN^s+`$eNV`nK#mog>Srj&%>TW-7ffs1b}%i4aODdE`IohZ_SKySlQ$EYL41h@>_` z^lgdfPyb$f_ZKTRtXtCatBCr+1B+i=Trh;Eif{=2@sGw8L2nu+K*0(Us>DMPUD?JG zb5p~9>)x2UT)!A5u;(`!Dz}4)k5IgMHJr+N1rKSIEs;mV$EIQtLn&9Y76?+@&Hfl0 z!eAOWOdnzCn5pL^dsL#tv~nsJ@$NgxoWEfb8^vPbIlG$&i;-s|XdXmBIJ~jO(13La zuWAnULUBfV40OcTpL$Dpx@rW#GC7|KZDD9&=zrKGFvS_9aiW;QAD3GC5CuN`A+F|- zoO<>|5MN@Kh^gc)jG@MMR!bii7=HkdK>6K;A2>vGUw}*wZoi|`x7M}VVDKOUgL5dK z;jzcJ@oa9axY@XH(bAx`VQS9$)G)=j!4;;yNMz^J%#o}}ls(p}+a6F!xYuvEtubun z_enwzvc+OYWP(68A@yd`HFm%!iwi-WC{BLtB8-%rVphO3;lyV@G73csd=QdU868v@ z5EFvz$1ET*kR23`BOy;7qp28=CJ8nbPwWIrb2*R@D!dsLK}rkMew8--85K)pOwC1+ zl$cUomw2F1Gn5+>OEgexB!-Oez`&N|!r@E^7E1y`mOS`^7em6DgtR6(-#h*{f_`F4 zY~SPCu>9yP+e>qe|L{amrUCBLCQBR`MFESG#?EqGfkk%(IoXjL_HLZg-Pm))U3u^c zG&~0~koZV;$l@qfE~Qzd99<%Hp70)`T%0!yB!P8u?-f4cFquh#ZPD$(DzC7}xlZu_ z{y7@b%@FGeyq};0?Wm0w^$EJ4Frwidr*1MgG3b6M`t!d?d*|p}nrII*wr$(CZQHi( zlbqPLZQHhO+sTP>lF9d7%-mV)&dgf#*IQLxUA236zrDJ9*Ka@J=r9}9@Qn%A$(l_e z40`Q@@rOSp6$U-dneRMxvwDBqZYOa1)t~lM5)@RD z1P`MVnWHu_0x4Jo7*Se0W)=)=(c^8i9A--gB+ORBQ3P+G~`x{ zY7tXPzaOshhA;Ndw+caM@uqua=bR|Vo*sEJer4vdjw~epMvEQMM{dF!j0pSZH$-zB zPKyZ3Qg-gb;Ru8lF}j}2V)zXoMvEvTJ~MB*e-c)U2u;~`&Z$2@?^nI&`-Waq&({Xo zQ|n4~#+4t0JIj|;?HUArEBYj!ct|;a&sv4KEj=4s2rLWk<24c5Go>LZEZ0$*pH39q zD>nZPh4o(dCE_jZ1bUXGxv*Tl5BPQ6gg-3B;>s@PotA7Qln=H(c_uxA-ZC!a{LhF@;T%G4ha0DjTNiTv6gcF3+Y^W&( zRSj!Q`A~^D<4snTd%G9I{#lW4;-|;ebT-X@l^rZsj74trG&s`#5Oj_0VpWB7e@t;OU7g&Wqy5HegM%6&S3+*SMjUXQ;|$rEDk<|V*|45cZJgKPl%*?C z_XR?b7ptMBUBXn4-Z2eIQ8dMHeOD%U74qkx&!4^h0$0ZoSiF-NqWKlZotJ@Tl}=G^ z^yCYBH8zv1htJ`+G@?5h$mc|_($!6_YPmvpxZeu5WL5J2Skp-+errNE5OX}sW01WE z4((Sc*V>Y}c|o7=9t)g;tQY+!3X;SnQ22f95-C1OBjLRa{3~0Hd|?z$uq+li1&(|? zs_L=Y2}P+cfhE>Mu-_U3IzN0*y`Ld$mkXvjJOv|}^;tWFG&X$5w&rF2i%;(lOi$Au z;q-lTTB=Cfbk3Fa(+3#d5X|-prup1B`P}u-xSKA&?Mla@&e$gAZRHG=t|Vq!fZd2N zJC?{!a$kd1y9)2bjx!#tSWH1mXktlL;nspDoZMCz_(`$Ys!&`7M6-I+4jt!pHEZt- z{tlfIcooAyD^_L2Ltm3f%@abX68>TGQ9@NR5knz3b+x2wuN|vL$pdCn1k|DWgW4zh zvK#|vW3zC`@nW)ztk?iBC;8qZjPU$72>m$GMC^Sh#)J@|)Gsylprfdu%(@wSY)ptk z<+y87MiLY_*tS;|lT1X_CT+t?349H*y48)X5cWH?y%l93=|!E(o1vF~P0QNh6IXR! z)0&nuH3PAvKzaGycgnv!xDlxvcSWl+{dIxwL4OBBW1w6#EF9Ka_`P2uqm;ah1*I!K zg)J1$-2%?|!3!dqj-1>_Dm1@}Av~jjuRQSQF$F2TPEjyn3Sv{UKfgkHC)`np;0$Y| zP)flR1{@q+!_NVOc)y;Wf76FhZuzC*?PWv)`C1e9A*Ar}7#^!2W8ecu`MBuC`0m}~ z{j9T*a@y#^dUhPPsYrIrNF`;1f;9i=aup`I0J3@yWMr2RB1&HdqeeaflkqDn z+DL*}z-%#k*Yefn@Wua!*F^y-&+-ML`ki3?S@R7CLn zp%ji!$u6L9UY^f3BQkPS%DcMfyx0j(gG&F8ZLlo&S#hwD`JgXxAJ5jmH4g* z3En&TJHywNr3`9O&1RAkp6ZL{r%}BE0G6XY7}M_k5!k{ft;}fO_g)6n{lz5?7UXpx z#h;I*MWqfP6YuH$lE)FRv1%3xEN`4kqoNd^P?%$2I8Q6Y#ZjX+IuedSq1DU0Ix0qj zkLr6u=MtNq#B)`xbi7kS{u5d+bMv}HdjGh+To$}O+YZt#a~ELYDpHZBZ%%>V7L;BO zZC+}t2K@!uk!QDITODo%r~(*Oy~4BJ<^7qtfvF<|Fnt_>`cbBIaWEzX(inIQIfR;L z>hc%GMt0sKje}+xu1>Ys#dI%`q|VLz>N#cxnUC@Zqr*tM|EC}8R&bQp4)(U~cl>&` zQzq{|PA9mD8t~@86XJFN-<9_964eS9QMDJexMDOrmtL%(&8Ux8Z1uBqkojeCL)_D- zu@Xojo)MQQ`63bxH7eN`q!y6$21O)6hwko7y`yfno4=Bdr8VQ`E6!dS05*Ormj_<@ z5SU=j0=c5)sT#c38N`KeI)XVj|N9GP)(`8*)$^*2=q>J@d872+XCY-kS1Uv$lj49u zdWqj%lPIRx7R+Dr%OUMelFf9d(k~!v%)7U8Ia!}StTh2EuWk??<(;Hywn@TE z$Akw7(bTegSEN^^uHZq^rI4iDrP%R#eam{jp+p#z zb|M)Xek9}+e9`@AH#eIb&1d?ozJVN`%me1DKA3eJK64^TncUnnKdV0Z=sjKz*n?%Z zDZ@<;{E1{}R=xw4S?H&Wxa{PbMgm8beA8}yys4bBr7JNR^IrRveL%!{Jh7nE0df*! zpnx)BGM<}!7XSFa(h^a7KAA#hQqU9@$E*lt^4;^Hz`ol!e3j72k7)XN(}BJsx@!*s zcJ5rFVEzv9Qdp|{cGrjRm#8|FH2SA1+QyE*>O4q2IAkeYi2xBnR#rSdaiqDq)AHTK z(7xL?(uv3lvcr{i>#C$G$ZM^jU(XFfK1Jl39o{4nk@v~hM&ZH38ysgexKt8yh*q>w zphdU5J{&R^OoOCicnugt^pa&FKtl>)w(d$A#XT2fOp;YS^XSd=ABlXPPI_y+mFIu= zk2L9R###k@k?VF!QIrGA#ktsoz1qqnT6Mum1ZO}}YZTmxB?p^ONk4^sxvG@KeMgro zL=I4lpf@fGGkYu8Yp1c(W~^6l6bjP6NKMZhZGWq-hGH*2uE3m2f+{68036SjyB;od zPVQX`az>M>6lN&MYs?@7vsXZ}$Ris>79(2=g&ufh%=N2y`Ue$BNi-jiD$xeZ;4TJA zf)3|^6aHp9A%Fm7Fl6KX=N2p?8CzKbe4k2WF!*{3=(qJA99#N}mcHa+0o5bSSZhx3zWY77=;R?7x&%SO5C?Jk#-ivDdQ z7aAHUyN%aq#l45BZHA?%ruj~lJ>N`tMUzZ9 zXAbR)m&mY_->vHmpxr?_pZfAG-%zaDoeN4xjgg1V)M8-Lj0Czr)_nF|>&EqqwL&EK zo}{abdr1wem+R+^73iSc#h4C9qDF2_rRcnJwB3v_ZsERRmksq1_3K}h_CLnJ%=M>q_r3=+Q35nus9WH7}ZLk9(hfeJhGGrthU$q`h{Rmg~bZKiJr8`a5ZViu$hkxg%d9 z5);B&ef3iS*@b;p-{?Jf!vi11%3jned?b3-Wqt-(J>~4i7^wk2rB+mM|42)nKb-}F z@p4~pMU}lLEd$d#O-Rp{W>65!909Zf0Br$qj}@g1^@itKxYB2jou0w+y@T$#I1&NF z3{%!GL+N3CXu!X5w4-D=+gj3;d`%<2p^K!~5&xG^!#`B){}0K4nc0~B?^4Li*e#A9 zscPSMARp+qJ9on?0;%3JSec=&7eKF>{`4yG5$XZ;9N_1U|;9`?_Xl~^zSiv@ja zU6Z3zX~h4vpo)K+^TUFUy*nK(mEW<`v!8u6dqModYq>7j_^S4LsQp0{YqCPicCKuc z*omxZ75iCeh*z?Iv|>**KD}qaR2l}?Z#2#WqCMyb8YLLrr!@bb7vh*tWj?O`+zRf!O8w^`zx%kjby|-2yDP)t4Lla<_PMn7`2v{&@}b zrBb{9agX*zH4<;;tnvec*7|`#>+kF(UMyFa3k4m}?&_%iD*N){u$z6K&Ngbs8h(~B z;gtI*x!ELKFDhwYNLcn!;o5Al5vNr*mrAREM485SdeT^2(q%6z4Su`*K!$tjULoq? zRO^G^K)|4$WL=HuNcK$lPZ+ca6%vuD?)IXJ>QdRoy7gSKI{o*b(h5u}31n*taa3@R zW!4MGWm&&n7TsTbBwy?BEQ;!|MffYxX}K!W>mu29I~2>WCYX>H>y6Xh$`g?=%#g>; zIL$!`ZSPPM7OF@Yg_+xazt(bGGpW<=wcMKlVoQ3Zm#pTFXYU%RN>NaIgc2o2Ay30I z!o93aP^yXZEE0Y0O*geD_wr~S+diO@PE^|~%W+l~j8(+|zqfUD%lqf1)w9|GxecKP z9B$?=_HVgA)jgh#`wLINlDKtmWEH3BAC3o7`1`NKW+*dQaRX3#%VKNJGxNUmSjEyB z@jJ20{0zgJhH&Rq&Y!^=MJN$14WW=XD6nZEKohB#^_6h{0acIQR%9Y>CRv^f*W?3Q z6xE+7g*ZQ#&NrbxfLOU`Q$V_QQ$i26yQcuz9-o`EyBKl^1)tLSe1S}uuSrBZ_+zT9 z0@Pg8_Dq34oum12UEJOs;fGcquxvagY_#ZZj}ad43R)vaA0i>jrL82v1=R$39gey- zO@!K7%5Hvmsi&@L=dT4$c(Yr~sJC_a+dU<|1Webd7@FEFF?tN0(^CM88vOVz=jk1M z_KP^h)p?&GCpC6%$bZ>b_9!ufBTi8g`2!7yNEa>0BY48W{JOe1zASDB=o{*=3tt1| zRpAt-{>*v>o?AOox@Vd(b;FYGI4pccl1YPHb0Hqd%FAUf?On3nHT!+DzJ|*W=ljn? zY={yNlTuKF*56daEG-dASZ#Ta2+Hz~KNFSAi(2K^+vgs=`~h{3D%-#Fn31e0&lJ|? zi~>m2J&C*hZCC!{MJf&%$+SQ)$+D;;(7^^_Pb5;iJJ_l|*~W~n$yQp$q*<`gFk_8m zVdU;wJa9Y@nM^6pFGqzoD<-Cc$l9f^+P+NAj@h$(c-Q5;o&xCC!j0l?AY3aQH^nd< zzrc<8mQGFBr-sru>WB}#Ydr)1?#9ZSIsAS1GN@P1hv8DwjdUo#4bZ0!+2;WMw=1Nj8 zvqPxkbQRsa_5dp)FR4vOM;$Q0V$a}njojLto_*5@E~2R3Ohl{9%CI~+5Go3$h=5H2 zsjaL>aT%J#Q|N9xQ1k|ls_nKC>-E4W7gxNmjkWSzu*!qPO|2n&_Y$b)T#}hS2bG~1 zsMCCQWv|JS_fX`_(z`1Qo$Oj0zb&ViDW}T#J<^WL3ZXzFV2F%AWFS9-=yE9a$9@^# z)!v|_Z(DP3S0Fq?E`9Sah?=7JyWGtDy+XmqOPJpdP?tjn1b3Z`OBac3bKcSq(`YmR zF-92z?MML=@G4qZ2onB_BzmRFB5`J~KvQ5CzuhebJ06Xq+kce7&- z=c8r>fk4pH<-}E}RcI^(HOiN(aeV4S3t^%sihzFItsND~ET}si#*Gt&Ml2V*sC{3d zrXkOr*Q%4%jk`!fE0!O!uNvlcHO3olHQ_j9Nn)6XYDf^AchhS=(qh;{jHr)zRStygev~CIE&7WZsJk? zpyBW3YPX?-E37vbr9OMz2Ta>IH3Vei_vp5BfVBW-y_-^|bA)&KZV;jLd6vmBz~xA{ z{f=sxp~xXzLl;TPAs9og=7_2vB&NxSF*^nZa(idV9j;cp1}t|YR)joGS`l6C0CfBE zp`Emb@1xmp9hB97o0fNLREDXmeqNcLoy~po{+P)bL&(|n=v;^{x)}80P+d1E02Od9 zPWuL*)UAEBU9*EXPbXQG>!up&tWTr#(q;X&IOfu*fMaMV^konpT`5MVv5+^6h74)ku0o>f|3iXsJR@8FDsG5T;6&qbu!0L$?4<>)7I-q5X;fdYPIA`I88 zDcD9Ygf3#ckp!Q=(JPnW3YZaQdNRg`6I*?9wbmkU#!z>Qbv>>d8f!-a>Y_T-8Sg0M z+?5jPK~-_ZzEe~k)K6i9F+w2m?ey&CuJDAOJU~0ayir+-;yySUgz?XcOPv?M3a5Kb zi{T`?=?dGd37$5Q8zBfX+dE^24JS3-l$g{^Zun~7czBG@cm>*s$4kN-?@;vu5F}!? zVx+vJ!17luuh}qt-6}ENHWF~{g5WUrnv!(WjE%@tDe{^QQ+pEE4&aMDfwLAV7zA|x ztstV2YIY%~!J8i?kV&w@CFq6eeKml`9c!f(t*%^-Uy0`p&{N#fwFYyLP@nF*wZ>^} zwK0vp1i)zdo3ji}ZsfsPK{ghxxhz$f8TzP^uFU>Kzpl_#RKq}~P|P1(W1x<}bgEEK ztT9U(qKnLolkX}U5+fM7Bxm{Se(6qk7V=?#;xRv5l1TtP{h&`pyhf&{5L48Mm+(A~ zyAOiL`W0PtCpr2S92TDVw#YJLe9l{;5d?h!(}1Chvsxzx?DP*9EEWz6KRg^9Ro8ac zMo$0N`Fr>M#3m2e6o!pESo11qK=hW7Td|@6sUQio1k_{M_Ew0E&!rg7d7+6F%rft!p601r`lnXRUQ6>-VdIS*N53Q_6!gLYJr|83~qMOLeCJQ?f6^-FIFd&m(I79qz==gUGtZHDN zP7KP5eT^-6mw&;9Xl)_(>6XVhDJ~D=j(4D!$1oHCL~U8)OoSj&)UP`t+2|6H(1qj& zjUr@){YE}+XS0>5i}hl^`m9>kx5PkE@0G@-<~MeX`aI_RqF@lQn>6Om${kdvn+g9? z7higV=WD=2!G5X06Ryp|Dk%C|e;oDRw)nvLKo%6;vEq8mb*W!@tmd*XzR)TNowp?D zyYE9F9{7^x-+*W#=v=nD(7&Fo!qUfyS9!N@v9p-rzV5(s>q)D@3Jdwh zme6msLuI~Y@XN|N@$UW~^eGMVpL+t>!Q&A*e>|F%S`zh@T;xxgFpJ zOm(bo!B@bmyt75|(HnxHfsoBwV890m`yWC4g-%LKGdM|t@WDTPfotE`8X$@+$`AlNC6$R5gC;~Ddoz!8)T^62A6@5v^kU_u%ab-9fJ4;-Ut%HI1xB@|g6dw%U? zkb?8T@ci;x3hhs3`$E;}&vq1P_lq!XlpbLkfaqs-V{~+ONdV=NJSu_)S{I-h3K}FG zluQpI<5z_u$4`M$*j>6f9FwHZDi{>IU6?q6LP-uU*Tu~9uE=~Ht{Z%Ka{&DG-)DW6G&S|^waq*4M7~^ad%C$97S~`oPNWvTex}|~`ZoKjc z`RADfhuQLBQM|lx6xo^Uc0=NVC(ve;F7c+HBpbpU9dETqglxl>;*sQNy6u*#{bGvx zCqH44q1_6z!PUDYrr;pr3a@Xzm_nmVM`LDyYoi=zh9$)Yip6F|CUI<%QOPjERSt!L zwn185rf?@X%M0F!nGk^3iQ!d_yh@ahyL4&*6pv}3q;!G=8#0nnkLTT=Y|tG#nzEKw zh3#xO6blMFdpNF)+!(YrXa(cIQ(xLVLt79(Iy?eJpnM|^36&cni7m0$QywCvv}Pqd zxyh_A3r$U-(9JPSZMjT7C`{(FSW+yaF{k!8F3m;|$cHz?59CNo#md|QA~LX&{@Qny z!1+^eXpu~a{63~tw6LDJC3K3|yw2gIK{aJJO4VH}ge@FNT_%XY+V75Fs1x*02g^jP zloIW-!Aw2q_c%8;=F;%y zHd4s4oTOGw)SBvS_eo(>)^meJ#vRmT@=Xjn3N_DCPl|=fkwH(v<(`UoVZW-x72<`+ z2_Pg-aK~Z|6H-(3^Ws7QL8`@|78IWp|DaHuWAt+6?Ga(=l5~bwg;v8r1h3akM!V* zFC~A&Wl4%iM<~HaK^O>v;YGDVCvjioSP5cl3%QvzK0}W-_Pr|v=q|9eKW;wUM+T+b zf$u6QAX{^o@C0ko;F?H=VSToDqCHXY#2}EsbTU@4h8O^01rS7-B5~yyKtu3i z?Xa`?lmsH=;%yos7^P%sPT8|YXJVG1b4!!=0={JZnwQ4ZG&p-<>GWcf;3Gw!e>~j} zSy|jlCz!~Z5(;s+APM{GgPvULaBp;fb?|Tfd=r??cX_z@5ht96t<7qd_+&XU%pux( zDASVl0ad=L_?WL}fl|nlE&0j$h=YVaV+feN#qlavO6{T@aQ8&J_<+a6WgsBsyAE)5 z0CBxDQ7|*bG*wRr{60@B31iBtw_?YYkOm*a9M;%qg^HsmnF1LzJ~*-Phhgz=_J1;G z6@Uy)W>DP~(*iEjCs?d!<FWg`deT9KNGx|-$GxwX${{|zw1=uA9H*e7`?_3u>C?;0}RR+|P9RKGp zNH})+&TdAgN-%d2Zbl|GtTVG^AxXOPR__ zVas7>57cIO0|(~uFe~djFC1m6=F=M4WxCn1X<6?u5fHSu5ct^aK7Nkk$?XVVl!*;d z!dvV8=NA>imZ;w10bqu}ok83KP`@q;UWT{`AA-)&<5izIIw$U=dANMjmUA}Z#hgC+SkclM+)kkw6{O8f`~R8y9i zTp!5@%g%6V$1@v&N4x8bJQ_r_LdbE@vr@G^C3GFDI#Y^p)L)oPzC;{ndZT%?uGXp! zQ8lzPZF^CF+20bfBSf()%o|axaWZux-@(hhcLX;;f3+<>6W9Df^7!y%C`~r$S^iLB zQJkpLBUC)T23`Bkq+4?i5{!PtuxI zYsg%ZHf-k6l>Guq!!qccPd>qQW;TLofLW`ouxhW0?=%%Qp!aIHHf4uxl4eZBMMSTj zzP6}z0Fmz?$3S*h*SRkBOK1`=qSGCa8JnoHZq;gkogz~YzffGCPtfZxq<*8nImSB* z1nX(t=Ih#82TlNo4m~o?I4-~Tjv{oxcN_6^Id+$%N(lJEoxuF?9!m~?=BZsMD{9yy zINp_`7*7HK{$1P#xcfwZwl??GbFKn|)5Eb^Z=A#~gO!~rt1aHmjcjFUHRq)TXb)Se z!LtA~aA)rzI|<}3v_r4f>#Ut)I7j-Q=Utv1yu|uvjpDw;Ye#W+E2h2q>AfKu*x2$s zifpXcQ0~7a3?;RNuA}l(?8I!`=1(vpxNqQi@!PxLjh-HYjGq^-Fy`$Un@eX0AA1*u z?8AT>H8M>T_$bZO`lmPOdOY12c){W6>Cn6Mw`HLqA@;R+QOFz~2=0%m*O-K2Y)o9# zW>+*hMs92<)z91Rfy%P|mbM<%c^@db@7d1R?l%s#w$m$fsml78-hXJPz_G>8!Ao1n zXvc4?sKwNcI@>w8N_-*L5zX*wy2PLXQ%8mm(;6PtZ})IEz$@W}q2<%rH}p301bR8; z4}15N>o#5+uUp@rWCpOm2l=mrKz)f%=>XMTM|)UL{S7rP>Uuu`U`u0y$ZgkzlVzKm zo>@+HLvxf!f-xDgVc`0dNM%!c-hQO(JUmwbkOcLk)L`QhhueWnzOd;W3fIsm@G8m? z)v5hjnBvv>7X=SCC~$&)oewt9kjxIgGFw^NDVci_>Jt71IaAxUbgz|f$o1o^v zmMCIZKY&ELa@hV(Q8#CDfS@e-Vi?F{Lu%N2*dpl}eCz2~-Li{JU8`OVLkCVrXg3|e zLhrO7X5zmd54trm)VNi(HPyhW5!HRSZ5G%Lor|*A5d#*74E#Kmw({kr>0*e9#3wRZFCmO_E~Z zc4nnEaAETHej;YV`W;dj6>^?B0mdp#pKKd}-XyiGx7z0|F5phc>YY>@=bdpz)5eng z=z;xQ1;A$+;t)d$`IsJP4rD%ke6?s+WbUy2g(V5L$SAYmQaKOnoCBQ5 zx3TQt1q%sU^TpBHk29}Tv%s_a*k1~6-Hs7{GD>^4B@^8Q4fAwHBE@{biwxiBreXvM zuG)N%a6F~BE}6%CoGh^4pwvm8yCioBgNQL9P6$;SC~esM*YzsS6#YZA-_4bX}l$Z!Qo_+*n- zi>=}Tf*45ev&Em;bdWO^K#JfF6)}z@@iX%!MmA+^0R&xW63rd&Y2@Q)@#Fp*ZBVl9 zP1h%yFAvv&{rpZtLw7W!M7Q!r*V5iT)rsA^Jyq%|V5*+*UUA`Tsig)6E+v}3q5&X| z2tH~+8aO0&KxiZsrj<};9`(Bj4HGsAX+sct{$4%(fp)V$x5#aNKzkn3mR!O z!>f>Tf48`T2o}tchzjZM$!D40-LRG-|E=xTO1~VMFdO?hxPhui`Tc%j=k2ev4PLN_&8Izh4}7og_l|!qpJ_r~?z@Tj;n$ z)d1&%CEM|ArHEJnO@l6bW)kX5bG*|6(C#~=`7`2HzS02Z&>*oY-+$Et`Cfmk4DU)4 zd-J#5UbXf30Bt-rPlQexx-XLz&y`6=-t7rW)tD7v_76z*#Uaw91@OU=T`WxCBws8} zL=`p+URw=yHJg)LLk#U4#zaNrq^GKX3;`FcQC|&V%N%sxwgl`itW9yq_JvWSwPr%D zAx}g^iw5_F6A#I>xxV!iiYAb~#;<^sQhYUUTgwxQ?Q@*Bt_Gz*!sMQ?2zIopyqqV6 ziElv4iE$6++mY5+i@U5NlAfxxn&MM#)WcfDOWc|8g}K?6*;)dS;3Hq8pkzX55jF${(2?nB~gLr{(B6Q z-M*Q}SITUP_8QU5@ufO+*-1h>oEx)O6lhTwR!nZ3LiZhs79bD=Tr?y#6@F|1#$<;&7Um0{ zeYjts`jtg4;-h(-bYUx~e)TU)rC^zgPjKz|>#7(#*Uk}H4Leh2w9;lY@fdcu5`J-* zq`y|z+8%g$Z9aDG>u)B^30gSw1jOab_7)qLw91c21!vcwcBZX>;G-0_t}k_>zh}~S z;IoR6yni*giON#kRh_J(;u$tcCyB13J}h(ys5W)JXYPDutTI`if^|noH;TVu^um=_ z9V|NLw^PA+MiL2f#$CEy=H>HE;zRnv5qnqTeVJmDj*x}<*7Z^$HyN$bkg=A7Lt<@+ z=qO68S;`EpOM|82%x)|D68q|J(NebNqh~T8KfR&YjUe?g#KPrq2oE-no zuKu4r85rm_{&O#;pN`5drnYK7yZqZnNXXtpn}C*?orB`?5zKCd7WLHObu;ep**s>b+w(h*i!u5lfQ-eZOhGxGTIV;8mohxe z@adH5o!be`@k=pF4XfXNj&L<3012{+bg9K^$f@w)ef{nGck2(EgU4@X-Wt9S(~YO0 zgJvIoFLqCxjjJE<-+s^U524$Q>Y0&~nbZ4DzaFkuKU%?GFX%g`JGZabf21z%^y>6_ z{Jwv#z#FV8Givp6`F(}dn!m)=e$PiNst#^OT#~PLti|@SRYrD}%3mylel2hG`uV&c zwI-@xD*H9G`{#Bxb7)q7cYFQSm(TU7-3;aPX)LI*!esAU&|j*`uUy^Sl`ErIv8GH2kGoG6DbbmoPt~BI!ygxYk2Ce#PMR`sg@!b$UE^Rp*d{ z^z-O#w)PR+?a$LiFS|fE_N${KyuK}+TP3Vd-|bF+>@xN1hZ{UU>%N4qQ>FA=qV+c3 zXKz4pRkg;jcX1>w z^}MyGYX!M7dw}wTYdK!!WrZcz)0D~A?6beHueBN?f4eRquZ65ZRn<~fT(W}c*e@R6 zKau5t%2dqC6B!l7?GJrcaiOn63FQ7p;{?;w~cDG8>43aw^06@#M0n z2UJ4T_?~-xrt3zV4;HIjiXGy&Mtq7X3i}UcDpl=zG)s#f;NNNTzl2X-%xIr}bwln} z8%AEhYyaJc;@dih$KM;YgWYv2p%R=%7nZfsRNN5t1625SW%?~h6Dla5c;l1gC6S{o zo5Sn#x+mcQ%@6lpJ4+mP>=XuCS(YW-Y$gapi_=x8(&-R+!SIt=7*4Cu`VPjk2R9%O zEhvvFMUWvKt4I$n(oC{>%pcIL&QZtUGETQ0zO9Zu>g9a=kq9lQ;b!gRJ z?E5MLNt46#h8J3{@EA5B;9=oD5L1~_I+^mZvT?;Xfhi*%9@g@6=l?X z=TCDt<`l%i@eD{wJ{zZ2?97XkIZ&-;vD2jeAw-L7qc3P%;sJ_20(s!bg+}wveit1GYsaWHH?GKKtfCjUqxWo=@>dA1r4$w`HuHOOF}O=+9EC!f_5~VGAEMI;T18KTLfxe7#H1> zk&RlbbqBK!|4de(J5lAQ)~9lgb=;MKadM#HgihA|zm`50-_>gMmpEX1Ft-7+G+TrL zgFks5%%-14mWj7+YTP)?UQg;ujzC~JTCG9R8297TM;ktlk2A8j&h4=lcig~FYN-Dn z!)3%|BJ%BA{>EsIP zHa05~X$Tfm5@Slio_t_UNMr~li^QxMGb2XTL6B+e6hNA2bH{M@s|Gg<_;e!{`p{J*U@Yi6ueo2ddXs+kXCXsvs2dd*Z+m`0&TntXb2I?Xz&h@4X*qORPl z0CV`q{YD?EnkWQdvF_5KsKorhH>O+l<=6Z@N4$8Ld?(5}LhZ1AF2x5A5L%IjBLtDs zsO^A5n=cOHYz`#>I&Iu)0!FscQSEb)oW&XcvM1?k?_v|Y%|4=8^HTx^1TTkAC1je7 zo)pi$XIpUh+A-%|#63=6Vmp1HihIT~<`Gd!71GI(;rvm6T^_uJ1z})OT%Wu!QA3F+ zc`vLoTOt&HGO;Fw_^~0N_jo%jt-41OIR612g=!xDB?k^{e`efgK^q1aSKJl^rnB{Y!6Sa~{@{PHbX5hEHJH-!n$1IeLA{EUms?@YMtU^JezMjIwdr4iJmJ?> zYt3cfUf}TV7^&t*?0-*#Ghc34I?q9@ulZEwVt2WL8IT^n_b^d*w$Df%-QOH#%XEQP zzA9mmbW&a|k9#(J8KjqaCD3%nH@JR*Gt*w1v&~U3%aSk#5fDKvYC_CsU2>@9NNB^K zb(0~qV?TXq*-r_!4o=NrDM_YZBH)7Av+N3_9HtPH+C5P=Cj6Zk?ETG5XiVuvp)$Z3 z_DH!DEGgs>NF=cUe-rS~(n$`;+%vX!SU*fLm{m?D+ChZ7#;=P`iMQ=gMLQt)+Y#@+Ym$#f3 zDoob!H)((D(*X<6NS7rmSFvsF;tdb_D=s{UA6a}*fk&$T>h>;=b99*%h>S6B3ZxLk zs)aIbkr5<(hXEZ>VuKUJT}>e`ub1s?sEub;dHIJ!IzE)a1e!VKAQZNdhiOyTNkBg{ zE12gl4(87f$Bg6?VV0s3Crr%XK@#i?sg%q~^K-j_XwYO5hD$dpYr^AKZfr9}3mCG3 z{2hCP(B5#dn&#Rh2}8$BsJNg4n<{M0x4_T(*L5Oeyj#;*A|k=%~i?lVNNJAi?HAOXyB1hC+%{E)%(po=Yhv z%p|!Q9WBuUky*!-LH}@=q>%STG)n(7o{G~>*1f0&cqGJZMKL8^k3*@LPw*hU*_rZc ztOY!c`sAsDVOIiOo>W$Kfav_zX*xS(SlS4CsZ$fXmZsuW4Z(ezC)7^wJe0p0nU}gmiIh&X|OP507D5bQ^dC4oH9KMX_NA7FCk+CMZ}B1eRjIe^;Jrd1BUMo!|+?ca?qrSW2ohK2J>_7vkYD znArPakzf~lQTQT;qD0Do0g=a=v2Fp(!yX4{#0=49LtF+26|Ro)ii2bm@un2VzKMCH zsH#VxX{b#mHX|<|OKuwm%4`c!*fqK6WA2OJ7CMu!6dVOJHAH&2)sNd}2f%?&Uf+sE zIJMZ2vzzL|!}rM&__a+NfTyE%u(z<8f_&Fx#RxSZzVqu`!)aN!iM*2ngUXS}3< z%2_HirT~l@XQm5#JG(Y})M}m1KE7+qL|R)Pc1g;og}&@IA;2a-|7vv+rv+ zu>~aw7>k0?RcfQIp|2(j*cj@J*{FYsSiidt1s5<8ic}=&6gMh%-s>3{@JRa2P%xT{ zt*6Z6lMsW%-aqhn05S`k;3Bp)hIwQQ;&hktT`YK4Cm)jVUUp`*LUn>}CMA%#CQvz7 z9%g1-EH_l`HL8bE=#2cZyl#+#Muu0>*h4dg*@<=+z`80Whl#GdbgKR`h0AY7LAlsD!QZz4GQUk?lb|RtY*Re>?jFV&0S1;vPG9N+0VJ{ z5kOWy{#%hUMMFL75Zu{|TtO7w|6OM%e-j;vnuvXF`xMLCk6qpe3CS*Bf3+G6%7BbP z=&?u%%5M6VY4K&48usV&vYpVx=F1m*{q3~6;$mcme_qM4*N?&gO`uf99+U-%g2fP& zWP?SGbTDW}x=BYGTT3w_>~ocOjoV&H`c2q-5sK;ceG#uzrV?s#Li@ZqY^v!`OE4{Z z2`Xf+Ok@;mw22n08llso6@CY&JZne%s44|x*BwyM)Ij)zNThXMae$H~SSpu&!eIii zVJiE$C@eV{C#yw5NJdes)JOy5t32P41h?o_CL<*`tWVzZgYpAE%}a# zSq1$hr&h9z3#>QQ#mH04;G5srSRLXtXs_-u%n<~LzBW^K=CHsYLkAqMJf zB&8XqU>gwoHtP6muuOs$iDw=YxiOohG!ADWOd?UTp*SefU^|?b4He0eg0h{oX;!Wd zo4f@p=6ZP|n*I^FaD8hTm{-EOPT1D6{?n6mOAPjy>GAy)A6Bw}+Yv+2=FR z!XODSN%zE*4N@VmNrDMEhgNWA+;J4)%jH`rR5MsmWYZrO<^r-TpN1_j>Yu$WFK?TA zVlfw_kBUAc6+KSP12Uw|0;QNN?f$to@dFP z7{KXW$s~8h*@Rj(ogdtaaR}~i&6lr=HCsM#f4{R{dJDJnvwXM{%;sabUBlL-Ehxw# zBTcZInZ3F#V-pP*#Z%uj)A?zfhW}<04mkm)DSZ#08FObPyTSE&){DK2OqSk2Y~47< zB!ExQ^_EJKi5C=JAa}JvxX7ed-sQ?&mEP*2%me%xsxpNS!wc?|V?WXP!;+-O&QA5EvXgQtfA3p=2D2EX$l@6-spj+QaQZ;$!PEDAhL z_Oea_)HU*@e(-v3eO@SG(}+hR&yLiFmQHS*m*eOVWBN-}y9=JM`(>1-C6sCX)uM1? zCV_;DE%SG(O3!V}KeE{vuUI3IDD2MLl76Y#EWFqJJqy-2RbbYwbx1(-?{!saya!w^p2q+vwhq%zzuvo0J41;j^6~^{Sf48z11v zP`X(OVJKj?4BOregod`wy$`Xd1^NbwWw31KQ=YqM{lY~TjuvpW)#W$ZcO5h-F_E}J zTy^6tqj^DV2?p@)y`4N;3K(oiaYYIM^4HoPIi*!dHA-H@6&@*$Oy#{Bz&(-Wlt+2g z=jV-xhYvixapI{!Um>p`98t8rM0vw48?7rUZTb%)p4MJdCfc{lJf~?pFb{7dWVmyP zw+BOZ2+>z;;9yDR?xIvfMkeKUz3?$Nm&pBvPMA%s;wt0a z(baHK$sro(oGm%>UIb81XXR-(aPE+swu7pcu32^mN}Ag5;*xl7q3n0&1(XT~R?h51 zte#~eKwOHtC>oJ{heiB?jXN~c2f7M)yRc2<3|*Zif9#-a&NC2c;*V1+K-aU0qF$qD zJekB#7nN%2>F8A7?dC=nWbx%d4VEnL{-p~A`cgiBI)`o%4VvkOlg;$UtC`-u*3W&u zukI#AsxN$Cx(2zJ*DqJ0i{>8mBznFiQKqC+?yqg{&}v$>YmdmrRbpWUV^YM6QuE_k z>$X|0$jKjP=t9RZ=z8-%;Ya;qyHyCyB2H8&D!JQFn>c-Ow&tg;mAaB~j{Lx3MrkN4 zIq^K!7^URFN*oZ#lTnOQ5Hb|0_d540b%t#n4{pjjtbbLj;5TIDOv2av+1}d%IF1J^ zkcCaSaoH_+MN%81lNS#2hCxc-5Q#zH%Kel)i+$miYPe0A3a|4VN7ZgajHz{TY6X#X z=9+_JL{T4^8MgVcJ@QZ4pt{i^tlWcP`L)`ta68f7|CC14^b*zMu6D{8vS?{@2NtR} zK{`9jF>5*xp~hwpc$+Ycx1AvrRqBX+3-QM*itfKBhjOTd>X1l>nwE1v=;s|_dOAH8#=&lsuaibVSA317J^9&>{`j4B*46x}qAKZ;U$^!_YV22)#5!$sSI z)_Dac!w7%+_;smQA$nJ^cuFiakFpc1u_G>g0T$?@L`Xf`xNoz-;dmJMHP?*D;cKab zH|BHA+j$FNbP5j{Y>VA1$m5f%R+bM<^=IMil#57eAjPW_Pm@tj4zpMQ0H)!fYT{Q%k{2PnySlcm5c{@Q^(^WZ% z!fCB3+_AcVYOBIvul%=}A5E|2l;q-adiovuovqkaf0T?jCf@kJ54aI?U2pLjb-a&N zN^0hi-&T~wavXqNuewaRUZ?WP$DftJJQE`8RAviJS&Ltx|`o=eKHwpG@!8-x1Q$s!p*wF%b-XRU~`OXt zDenWdboEO#V9e6jVVSlBx*qhzw&AWCl-|8A-`X@PfrM4e;?EY`TEtzC4f`@^0W0{+ zBNp;EseWr{BaC}1{EC_Hy$y;)6u}eXxCtzu%I&auX@S2yd95gZ6`+B*@*wBa$X7S0 zY~NQGSP}k&CEPOhhy~wR(h#@;Fv5EWP>X*O{B=Y(vkiYj&zcbn2HBqGS2c<|V*@}- z(ZMoEG}#>}A`y!ngtxt4KGsA~(PUx;-feNS{ARc?ex}h6&`0+*Z9MOt0tslya3a{BSu&j-5JDXR2n$OxT|eqA8IpVW zw{DgNnT4iK$Zn!TO6jeJV;6zU&L4jy4`@4prc@OgEJ9_E1lLb~nNwd9H`Bi+TKo_cx8ia=v*UhTOmDpk$ z2?G!$!=8y0o8<>EGlbyYJUmu(+jdKy{Cgq(PAdu~pO3A&2Vg>Ku?WxqYm+TC6VZY+ zINn`;i*$9(g6{$2X|TTS=PDp}fXPaY|H@ z2&Bd_**dWR9RMu&%(n#0rhf*c=u@wn$^-05vQ=3%A!B5JoLkX8bxLeMe|r=&`TsB` z$Efx9Q6tIw?;uAz^`E6FqHY@{R+s`M_3;4X&hO3#yISdLRrOI6dfHiS5>|W{yJ6VY z4*|lK6P*c>P1~XmsR0v2Gm#;(R_BOOK#P7VVMs^K93zh|QbURMTNyd}f1*%-6kx&t z(dx*jb!J&;l}qoEP@Qer@*Ae4`<6gdHo=AdDWHEYH75_CTJs))LEIR_lnhTsh>z8& z%L>MT(*Lqe&#@{)0q9R9=t|09Fs(hCtf$?VXOAXYIwr`l z{upy;R+pRD%1SQ=XY76`)7YqVC&JWOvF?se(w6dB`%@AcVHtuW9{9jJR5v{k(q6ic z-Pz`AhpF>CJ6x+Ou-XtOhx5NHV{drFpAZPv6Qe#GW+%9IbE<^&5ecslF|QCRaRc2g zYM_T_7%!OLxUfBtA$iOi<#XbyI8wv?`Jb@h+9)K?N)?t9IyFI5%veO*)gL(rcGl6Q z!C}eHK$RrW=&0;8RV8g=po}RrL;n?j_ez?yKexY+TxTr0C{3Rz)OR@d(bhBuP@gw^ z)O&o|(t~(ELUS}H@7_Aif2~K;4*Jn{=_`4!Cy2z9ScyxWpw##?&@4zdf86lX<5EF? z)~RMB`b&>$mjyX(`V+H3rfJpilh7-GYM4S3HN;dP4_)O)J&y66O}(4M=c?w(U^xxRLX--7*MhIuJ8AL z{8J8Ig3#=M^Vk!=_<96caSc-eomsm z&HWIX^@mrGmm%mK7ua>uY_ySA|Gpn2ZAG0?c+OG9**FIa^2;en9ljl_2W;FIz*KA% zon5h97)BU81~#4CXsmP$oG(%w3_eq1ozm2+caCQ?uEDlC{9Z1i8M+YM(Ua&>qUC1s zeuceewUT zD!|a=(*qbGiH;3Gcs9+-dIwj$n=6ULZhMvQD>le(s)Yn$7~2<*14o8T`-Hg1glJKryrl!<>R zA{#aw{0FzM3^`kriKB)MyCwKMJJzddO&@fgkH!m2JGZTU+u3J#cs-q*J~j*4a_!LK zbZ1j5FV}5doW9OhJK?#!AL*jj-wd5xQ+d4ZxV@fF_JhReG*pj6rgpTsz55z~zGoRp z+-W^jCn*2koKH;@gJo~N-C|@9Rz3a$okrZp>T-tOLcoSZ_zep z`sAOTxs!Xw?6tGKr9+5CNrL6S9Y=W#`>C!umwCPzVKu-sry{%j=kRUa?1(C0QgP-DF<2#*|;~jd=wg z4BGfOsgUPw;J&s<1y`|?N~yy4#~?UgCTd$zhna*(x>{E)g#&VvSW9I?1Gy6{Y}!OR zzz(@eiw3v%EuP<44dCOv)lr+;teQ+A8DqahC2+n8DQ)N`|wL#|MzYTiQZ>DO1eU?NHZrWxC8W%@fT<%mnw) z>EykT!O%HSMRr^hw&f(LSNNfMhA=7@T~wb&$vQlkQ2`i#=7uJ;kZX*&(r$B$8y1s@ zR8$q*!U>ky_6vb0SO|JTnNThlu-%gf(CdXK<-QS67eGSodFY~pX=D@tUJt%%GCT#4 z8id=$WCmrr34ZTB+;1m_-Tji%(GrFWBy+J^gCR@C-u}P%v=!qt6!^)d0QKynwv23# z3*CeLHTjiSaL$sr)hB54;sc%yUeu+%vI{jxSBh|f9ctm|6l6|Y-+fjpIJOQ$y2-lW zs`B(WLGonXfddPDf$D^hP(|15`F)En39AhWtSZ4~(0jo$C@~BWiwR;TDU}OK+T}d? zgdV{(RB{fFRc^gI3;M3~=e19CN|m*)ec8rHHYLV{5faa*6oWK^nZT@I-8x0Y69()I zBM%MW)yXs5?&u*>cyUaD%Px}_9TkoVN6y+_@}j_5wgjPTYk@Fz4ne|vXoDrGU2#!5 z4`BLyVV3D=mLOrNh+&3OJYCWaxkAl?)SD!pipbiid(m0hs<#>yOe1@G!?WrJ-#jU= zpU3Haew459eJEU&xoN6U`IgWmzubT-*%p>gBSqlUxtXm~T{N?@A|J|@T>KKi&ic8S zYo=?ZxBu2LDydE9!ol24M?=Ui{waUZNIqO>(3wiAYfmvJv(~1xAkhU$bdDcr`5(n{ z({1MSWUM7%bx<<#$^I}udhN(-@UTG7@0nr^0AXP3t?e^EZHwt|r)Lw{IE+AZLG>)& zMe8J)rQ+i>w0{HgV^-w}Y?DCFukLLy#%aZ;Qf7HruOyNjQHh~-;@4eAXOjr8g?G=F zR#OEeHgxigh}TUd>61Jv7K^Bt%lp8pKiPnP9f$=%?vVNX<66H_fa#vxTorO}4*+*| zViKkH5%U)|t`-|2X)+X_8}bB{^S7Eo_B@M5>qEhOBtYL_`82_4F?Yr&YsfRYzlqua zvr_LD9{UrZRr8g~~$ifYz+RP~xKu~I9 zH|A2}-2vF(8mAOtf3ckaKiQXfQ)noIt_ZC=vp2AQ^b|meQPdu1)Cg+%1AYr0wNe#x zy^T<#?WVy^x{@#bW6sk$#fwhb0DF;+nWDyNm1VZ%ZN@}`?uy0U9tYc`GfB4Jg-6Z> zFK?;?HSjLeb7QU>;wRp|65bilfcr+AEwk(shEskJ?r6v1Ae;E#5tSDqgq+GsC_w=) zhv@I{@T$Q)$@F{sQF{B_DCn)qi?oQCi_hqOhv*U|_8h^dR#IIJIn+(i6XM#^k$0go zC-1QR2k2Kv0U6ds%Z9cbN@yqTBZn6S`o+Ota7a398}*oWAM>EuU(r4{sU!(@TE;vZ zk>%f@qd_1rjO(U9!oZFZgJnkBV~^hNcuDj31t!$~SVV|_xFWzj-2XbrTwI|}ouZBR z9hgugg-ZuiH!wDX?MB84k64+aV#T0N;M?| zql(WO0;vj4Tm#$hl|Ae4RV$l{O++uB%Je0q&>tAdlwosJz(MS`Hc6gK3mT4rO|u!w!A3fjdO z{<5*w(b~_$7Q3ID4~o3NB@^GzyAl+*ON14jTp`GmZyHN_PW4}!o3&&rA(Bt@ct_)3E%a91R8rLQAP?LkUxtm9vT*U022q7#0A~4 zg~CnP(!yT9e=G=rQ@kQH;{J2n1~mnG?L?uln36|i1F-952=oSY6|^-vCss=x{WJHR zQPWn-j#2?$M~8|x51}zFQw4RE1nS!*``8b1To}lET~oFn3P-b79}WZS;iSFKy{Y*D zHl01;opy)^?5-)3BMUkTjPHHF$Un|kyO`94ruL}Hua0`RYH9&rDm+zSXnKC7boLGR zawng@hOUmH>3jZ<3(58)x}-epMHng*Zl!_twkRmT3;27bm@6C5N>9;PIl~Oux(JEl zVSS@Zcr+H0b6U{eZAkyjBy|8gkf8I82z_&`ulcQ`7+848*L1dJ?=Sp*UsO4dzEHNV zfe?Y7jgZs(=nOD;kJSwNv;kd4 zopTVUPp>(G$dJaB0k7U{3+WT2?n^@3e5T@1%rQP2*bw@GXw`(vALCE~D0PXXOV&%- z-{!-DpboJ4)pKIGafvm&0w{wxk&>3#aOq|Gbj7tH!Lkc9LB-1~JPimBAJK>Mu+yXg z(i}N;;8neI;(lIh;|(!2P=+{4ikvo}9ET^gmc#?=vostflnhxwuot>JckX2Y1Oj&3 z(QzbrQS}ZEL;WkCihOE@i&cSX!bVvZAfeXl=x1BQ3yHjSw{p|IybicbA6Sta*f|pp z-DtHN3GPE9auGv5i998rqpziB44GKin^I)fJ8yME-T|Z`xq4c#xN6E$jX$i`DNfrK zQHgJEj09L$H_A0xS@Dj#I>v0%3F-^dxzRnl3CsMZeQ>)8w3D>aq^xFUJVj?j6@hQszDw=%Ns* z@IE-_*xC7HK$%%08Wn?>(Kr!sePLTY|1y=o+1oh($#gHhACetr-mfQ-+caa&H9+Hv zkm1HdGYBx6U_bs$&SQ0 z*RS-mk_K3SBSTmdH^V>`+d3HK`s2PU2Ohf!omP5VFT|CM%mb^R;{5{(2@>R>D5++iI_L;qrzdp&E|vIL^TyM4xdZo7ABR24tFrEj^H(h+ z6H0Qx!xdatXrMw!Ee1S0=46<eJ>p$+}~s)2O(XanY6B82gY~a`qQ5 zQ@Y%%yX^A;sON0UYiUl`=*1qiVGW6I@9;vN4V)jZ{Ed{iAMA}>!iQ}9@_Zz-{u=&h ze$A{54TpCtzuo?)1McZanNDVO$EN(6{zG*==Gb+0|2#3TSk+HL@;#`jrH`UF z%J-88;dn2PK@#!LvrAi?-!l8Rh}_Nh0o}Mw7SNe*t(WVtX?^D=aZvckCI`g0&xas% z^s=W;Z??A)#thUgwiJpfdBtw75)Zd;7l|8~G|?W9ai3kneviel-^4s($k37ry>9Gu z+3HIhM$Pq@QbxK@_y;XTgj9+YqU*B?`?}sJG1*J7c4F4n>OQaR%3xMBTjd$2+CdM@ zfrEkR_uqzpx854`ktQ{MC78*^Q17r^{W~&BmlIHr_MTwxlu?(6G~I1H0R=|~zw@_q znACSL88Mb?z>T80_?!UR)P(szi2TgzSIb-#JHxc(I3k0fEUw^762J z*_1p`r87rNF<+Em&TE}?mgd8+w-elH6I--EN?IqOS*LikEkRpfgUY<6QUNQisG>ux zSf>vZl2?AlRSBgOdD7pqxVHYQh$>xQs1pvoX(2t-Lg#WEF~zUbedkg}RCX0>7)Y9=X2kgafP^aX@$_oFqR}h%0W5-5y+3iJ8l@B+= zV?9D_O=6;bdTcnH=3{*~dwxMS4U)*^ba`x%Rol$VGim+$Nm~%(23W>$!VZ1|#^K=O zHcsp>aps5jXmeKVR4GFwNaYlWh{KqmgE6RqOQwuj`#hRoSI!j{&$@(qAS(&`>$Xo4 z+eo!FyK2MimaV|QCaj%XNEvYxrcDA1BUAj-A8sL5ULX|8TLqb==Q_|&DiZDfhbj}o znM%1M|8Y8W;5iv=7IODrxx}DY?KILBXpD4DX)tN66Rn`L8m;?v(f%j}syk8niW@Dt zES)MY5SYrt(U#1Uo1pXM345kdLcrwcp{ugM<*=uLmIax=apOs0hy6d{PJ1vcN?b`{mz zF}iX8S^<~fvJFFMLK{SKMga)w-N~=7O5~hXwA#e z7dBK_6MnOYN!JEfeW!FvZVEE0i$zOg|21ZDjIZrF^GO<+kO<1aj)dR=&}VRPF7-sx zbO$!&CVY}@JIp5OSVF4>avJL~O+uHON@W&E+}eBx`y?=sGun9rhJpd8RZRxP@W!X? zLjc2&QE}~MvJk)SY@OD?Hnu~BCF1K1z)_XmuLXPP@kpdj^STkf1&ap%I9c)MM;$;e z+rQu!!jDq}wmyD;D1KxgK^A-n=2pdOL!m9GkR;(ggB!ZQb#kk34zOZ!YsM{m|7mX2 z*IZHI4nM$Ug_SiiH734J9|s!uN{;z*X8;cTDAl!AO>M9=TUH;v?oCv2+BIHzQ}S@^ zO=6l3Px=!XzWzHfO-k>OCh|^)Dym(SxO8!~l9dr4B8rTTUY8YNtfl}RJxdp>KGe{% z$wgFyQ$r!GkKo`ZL$A++x;vaHz535O)6x7*BfQ5u69$hd?LDKoNy;2ke_-^f!n$=| zRN=tuDleTVPrh(|xB*)}7d0A8)ei-Vj>JbJy+A=ECx*R*dA+!{TH_fJvJv_VrtrLxXB-UUv!?&6MJUpm`>HF zcuOrIk_VhD3LyqnBA&nq3|6#Cx4EB0EF&n(v7%0syv|cdZLq3^c2a5lNrz1g(TsER$l%o-XUuwAZ8X_{E%67?bZ7_IRiP<&kAv#zmv$K11Ur6yZ2L=;WgBYQ5viD(Qobyk^FQ6si5Wrun( z;*FcrR4O!q>l8!V6Ti0rS`R{JEgSrU!JD#^p1Q++ssglmph6un!SM!#i<1GE4PpYF zIh{e-Zek7a@SAVzV7o>O|Cd==J~~^TVHv=OsuG$cMLHWCsUNX2d5IDs(I9xfx7z1l zM^)j7eJnCOCkLmWd4w;UfPJ^l%90AglXu~elmwvM@I9_mbz4=$Gv6|4gB_V!sc@Sc z>T|P2%5&!rWa`1Y`41JHMu!Fb=+@zv*&$gG@gW=6BC6F#RLh&4fywgDJ_@aXrwi+9 zNj-yM#K$VZy@JOn{?Q&KClYq#0+uWYFrWfI1%{0@Xm|4S=LWF35I=EzHVNK0Y6+e^z22=X#I*{_m1&k zr>H=NEsGOVgmcZg#dNrO?&JiCdSVX{zp52Vlf&>=cLP|%m-nVMj9Y>t>$iKE8)?e) zM5nc%v+t!hk4SSjH>myXDFNW)h;}*8L;WxBL-{RmznblqvxgsnD15|;ott=En+_$r zOKM5E(aDfKi%CV`euq(&Vo|cTKA`m+d-&q!l>Df9KxzN*alXo=f*gp>ebNEQW(loI zJc~)`fJz3Tm$GQ$Zp-=B$c!CmRZ2dt!?-Np#Lkm_dF8A;o-L4O4GRGf59(UpxXAM*uU z0ji%2E54W&_A`(l5HSEvVjd>wHBZ7{m|EbNgdeGffNR3!A)R>_J3wnoEQaM`$a-oj zD=j)6<#l97ndgwFg?-Ws!y~(beGnD;oBi9ANx{Qy1{NJW+Phf08LKLG6_F4aRP9MK zK=l--wFr*we%<$8!9a!U=k7O*L`GY?8X6|xvYuQ52Y>w)EcOtQIg<-D@g^yeN=!QH z28gkarkA0=z`eo+-CBd)2I+&fTs08~$~?UaMk6O7RO5yCaMxfKE7y1*zC`?$MEQnH zW;)scpjzw1q+~T?!$qUt9Mw~;KbARYCrTk^Fre0KFP}~i=Mh#zxA0+hB8#_0oACWg zVkvC4AJ}3AzRrtdH)Z#GX1CKKVnjuzC$vJ8H4Q}7Ra^w5Trb}1TW^gF?Jld>kO`S~ zUZ_%d9qQR$IK;TgR9>i7Q*;+8)3~mDfcP+I3%Id2fQ_}FqgcS(F51o*sjXrdZV2pX zsDrP6fCIE5`YVp)ko<=a_LpBKK|tp7PHN61qp5G9=;e~lvoY7D*ZDIlC;2ZPXeIcW zD;Wh6zYs#2&&bL`%km#wrJxcwH=P>(FB*|f6rY(+ z;P>vo@KFIHXA3)9Iwd+4MT!3ma&u>Adrmq!V-r_n3s*WP3uhB2I(s9F-(m0ki(#Y_ zHgGl|VWgKga5S*CHnFyF`hR@%pKl%Q%p47DY<>Z;zjrjh!D5zeV<`HbkGzSt(jjt>%{zt+tXM3iIdlG z*SzjQAqRKv!4K-X8cgF`UvEU~*7a-u4C^(w`v}7G6NU{{>M!;O4V%5crtg~kIy-qt z^n5+Orq7!?ecWD1+uMD8+~42cpGr$RFLPaAK1R1K{M@^~H^cN~FRJ~zH@n-pe7{`o zukd=LdVId_ho5qV7fLkJyL>1a>XkMHA$k}#3 zZ+B@Jw+7CLgO@bCPkif$3Dbu@+KxFy;tEb_ck>=@qc9= z>XKR&_|B6Jy(aM)?w8+II6d_W@@aYGE^~DF(a|U^a$h_GzqNSHahAK~Jl?pry45;A z-{7X`y(9NFv&V1Y&eY0r>BoJyWgPCjo*lOQv|{Af?VbNC8|}Z~NLQA(sr0rjy*%PcGPSSI8hz*jOp&Z}4m3P%SZ&MPmhD9APS@KQXo- z(|l42tR1@Skcf4(tG;haT)@mPQb`}GVNKYOs#5gq{jwI+KPOyb7G9P~aCL?5UH^Q$ zyV`%%y^$;Z8tsf9SsnrkrG06Q~Y9Eq#%yGY)bV^2|6VWz!#=E-XYJmhL;U*X_D9EvDd}- z0uTP9^Hlg0=k>{9^QRX0W|4eW0AJSo74M=t?xRz0w(x!J+gB@)ez|rg2p4-}|06#O zqN!_qQI-EeNAN%@ePE-joSVW{H)2ALT13jTJC~0;d%OIr)cV3g_~z?$@q1sup;Pil z((j~DlxZH5?7M^S{8%yv@A)MoA{&=?ylgJ(bP!|Wx@zwnMRSBGvY}>IBgFDtt;9h z0T~pQqlRW`%;!3?Pgdv6=aW}qWxPVIGL6!>QG$|$QmMyvcrN*EA7FL`Gdr*?tDjQW z(W2_v+3d&RLK1Jz^@rhj6S+dN1$i2418I z$jOnal=F0rkRa5>k=9bjf|it6%1wtQRYuJr`9|fNbn}$j?+P8)3xoPpGn;M}$@lr2 z$L2SbKfx)&j|s2mF7^S+HVF1h(#S2dD=xbGpa0hM~XoLo;b@B zV=A9_R?PVsOHc2@jC3g~M#uW`%XjTZRif+%7ir;EoEFeMx|Vppb0$UA6_h&5-{^gZ9D=0>Omir?<> zXND|)fCvyxHcV#v&YQhd$#MwZWS2Hz5nzf%@kz1+gPvXs6C#Yj_nFU?^mypK#yprjq>ccQaguo669bjQV>bxZ z(4e=@Whw;7e6az9g1*A~ul-;U?k)6V(KV25N{cuI>)Fu~HB3=@_M(Q{v-Po0T}Hy4 zq~(5kh@v8#T<|Mbm^Wqj(rM65jXd8?qtF{42x&SvuyC>2ryst16l%YFU?H#^XP`1? z+7Izxx?*szP%-NR_)WZ;l~ucM3_vj`+jaJ1y;+nSb3&byM+h=SOX%Ei2C2d1wPHHS zsfG%&`=W-k5Tnv^e5p?u>dTm}sbg__%Sv!0xbtf8-6hKRZj(-lmrG z7)5$sxA!sz<6&;Vl;V7(Lp7a@!IpgzX_F;Wk zrrdZx_9#|eDq~UmT@}w}OX@4&cI}YEe zxsT&)#R+Hzx2cf-fsv%BPd=n3lPvBZhzh|{8WVJxp9@x-H`3o?h@-V&_xKsl(k-jx zT{%zF^|mvXdO}y(@^)@vnzNxaubPae+qL)%>IQ1XvfV;l9r3GIms*|lgY8jT(}d&O z=Ke+A&)*)_v&oQE#bT>d?bl^{#i47&NI{+cVd_^yeZ$iGzF>t(JQF_%=?MsWisi4d z-zFXmcDo-iLRu7vgb?w{0Tr6W2CVCS7#4q|QTzbL6Y6UT~$vEIO z@}+*vlBh1pOG4A>zd+dZDd6l#t(NF}(FlYf>A>vvd(wUNgtQ>oj73-U^sX4r2?ZF>7@b-^r9N#t4Qr7O(vSnO_)cfL`E#r zpl(Klr^o473sdq*Ns$d0_Aubm^ShhCO z@B;8KM#_*2i>;c0&samlYN_)=Y7Ic_e;~N*^zWSVJU;f}=a=MBj5KP)!d(4p|3V$6 z<1WtmLeQP2^(v?)HPXz%XNvT*Ijf>U=Fjvue8$h=H=U@$CDxn@H4r2}ti*)Nu~UeJCCq3T)|sr+6Necb~PcnyN{p23qC#GF_!R^DYqy)-7dfp z-zhR=(!UEBAVydCtpz9p9_Nw{%Fq4#&_b-XZE5DnJ;*EXOcej(Ww)rocIE3b!Xy}c z9evoaUo)fDM*m4$Jay4zw(Z+qU|CT#k1kBcEmZl(;YUuyUrjjs=3^AW^e5|K5Jia# zVo8E;Z_L!+VdC%vIcOkr%eBEY>y)Ywi{1jpE;^M-Sq^W0BhTfI?*;(E(IEB1TyZ9alr|LeC(6Zcm|;zH*^ga1K?B zms@lD$vlUG?m@Mfax9H|1~q#WP$N%DC!$8~MbQED)D>UDufW{_BzAv3@d%{gJS;MZ z!V1V0&rkJdYWCaUNzaZ6*J^>4`-KAo7Sz@xM#nV`(b{%$@C9KNP~4iEs|i zz!4gj-P`DIYD|(%laiHQeJe`$kMxUeO!|iVbzTh4tQx{zc+$V=sYITj(H1Y^j-rKyW>uP33LahN3qc2Ndh4I#}C zUj7`sE_=qb&rI75p{uaSGhU_-VC)gMnKtATHDv>-Ih(^z_%OMfsy_@@060c8FUoI- zU^IMJzL#vRoArlbzXckrGh7LPAKuOf33nZHq?y1Z;*^qsbBt2 zI%!iD`%gM)SDuYhe9D>XQ{}Rcxi9?SVr&-YDW2U&cb{`O)5CSJi@2FXQEkptQa583pQb}AB71IDO4 z+d;cu8J0|&U&?~15GL+jUf21UQ3j{=&)m}3N>~1Zutlt_O{Cn;5>th)kOJgHq<29# zHPh1->Wusd(p3o+f&-W4jOAnQ8fO186uAxAt$fBjVZgWe7quQnXN$k@i!erze5tsP~gf7~MEq-qNdhXe#vp8~GvaF_w~P!>g#ez#!WhUHLg4fWGIpw?p9J(_Iok zzE;b(mZ3Nv)0*OsPNO!{JKsAZOwQgSymXJiy3`$P*=eyi@Py$#EW0z<5Jk8}+19Y~o)=Z(wSRId=XE(LFR~ zOO`%b_Nfj6`6!V~X{zw~-=Bc@qjJDn0dK$JPxAshfV`dfH}*v%V$4fkkUIjH zZUi^{Q^fC`*i00rf*F0Zf%K~*$O0uRrqzTH7EacP!4?%1f$Sys;*jMW0+OHQr%8zp zX$;~KOv!SR2(3s(AR^Vnc{{Ru0z8GK;LD3)?`b)>3Tzjau3!}Pz-j~}^4{FRLRJup z|B1?yX&IP`hGGulkl4+*6oCKr@=%uldU=yUM1^WKxRXQ#7pJu3KeNBYB=VNt!b06> z1SH80e-jfem?#v1rimpWO$4orgWHKq6c5fOYLnwP8mUNrU#X-7eZx#jBE3=|A#HV8 zyl?&(wDO7KJtLGDoJW9=S^VGg=Atp^P}?XQ$lnYirQfvv>&jY!(wW)hR8MGYrtxT8 z_9*v2!=pkxO`-U7zcJ}3q`aJfPJVF=E9?JU$}*b&UCPWB5e3Pghl#2P_y!WJzbPb) zyvY=iRS?6C0xO*n3E_HHyarK~K7Ac(!1+fWG~NEkQU$@%q@WU?TPchZf;mNkn0%Uo za9_p;Fu}heO&AC+TY$J^TNV)#twxpKf-4|wAv#C#*8_`L zk$wCEz zp4`H~N)Ye-L}g8jy(PXXt?NEzB{ET{0_XUC z0KlvG2(ho`$*xt9N)U=a>TvzbO=O6%B?;7qO{$Y&@5FRd`P#BO&r#5$@y0WP(Y70{!eA8#IuzvqyN=Vr(4@=)==BW z9!S`@I_~T+lOywCj2qg=Zrt!+()Hn1+h#a{k;DvYUKL}MsA0m7f9L!AC)>x%gBPEl z|IP;okC#8TH(*lb4yDlVO=(+v{?U%$zYHDuq_$bv@541{q zzK-t-*)G*GZJK+!LVG)9x^-=QHM+lFM&o)8AM;}ZtaVULjFNQj@FZ6jmM<&WtTsR| zT|gZwBcNQlDsOuHdN`rOkJi8U4g9cDC!)T-0VRs*-bYd-n=3W~o&OAGK0Va3UcFb! z3_Dm$H2c1PQGEwg_v(I)l87I`eQWy#=F-->RZ6|$`+7n9sn+g&7{L3r?}@kb-u`j+ znLO|RVRJhezxe2`5X7Y2wEQyo;VJ0axSu&97GCwnsTiGTFxM*0`8V~`<%v-BO(~|(%v;5e+eF+)1)WftS#UiV z@8|b<2Cf0z(RAlbVHFkoUJ;4d%;^PcbpCPr^L$m|3?@DbF1{R7-W-fvg;6Fj8-DG; z`>Jt%5vT$O`u4G}>G!TczR4wf2ry*JN>BXDbN;<=<4;K-GtW%Bd@0}{qz*x%P5H~W zSyEnY`O5U;3WukA506$KAf8ckmci`gg@3QWhDAiIL^4~o=uAuP0xz%prK{ZQ^_IBepY}*_v57aR z@H5t)KD0BD^`nZw$GG()Pg=s+UO;_gNI$TV8FWyohF?C*(cbOn18LC*4b27TwA~zX zv-VSZ)I;9>_N4(^*+$Ceuv{e}&l*7(DxQ@VdM_;7nV~Xxg{p}{jHk}y!!j7<9ege; zB89SybpH=_#qxcA=v0akTl-2pW;AC$Np3TipuwN(H$B>e-!=I2b$l_Crpm1KhnJ5X zHvBFB-?FisxW(op9$~UN(nv%!^EktTHymO1uK36BvZ{z4C(4)5m4H@_*0vj-HByTd zx<#gUPeMyO2Yjkc{)^(PU6Tq#jFaNLLZ*iJ+vk=W?SjD7pb{9>hJ#+VesBiZ97Hu~ z^c;dLv!KNYgiS{e{xXAYu!w;G+dzH>k06e1sy$KS6wbM*`+Cz>IA8HrI0*l-sB~I* zJJ38p&6u$Eg9-Lsq#yJ>eB=)_&s?8pH@r-)wx9T=A~Nm)r!|;GiLj+vm7) zL|q2*G{gh59Z>}LzRh0A>Ho&qJH}ViwQb(9ZL{O`SFp?Zw3+5v)k#hUiAZV}mzjjyfDWs{x3IMqqUs^SH7eWW|gF~Q(U z?RaSP=*RI71Ur^rBMkCq)FaG38ccSfWnXKd}zPZZmH=tg=Qu@B!7~ zI-%OmAuD@-3zJrm8Kokz9T$NZk1oLs2?oNW+_Md*&O6Lx+ihBK__SP6+Yt7Iv{>1- zRF&t!O6uBbjaBj9QB1?{g?~Q^`c*WJOErB=Xa!sGmaFsQruNMH)w)gF2H``e`*5=s zUz1hyoK_TE3GfB%?-4k2CODLU|8CTQai3GT+goq6U#tNAGnD7CFM?aNt0dnlyx3X9 z2v20)?z+~YOo7Fxq9Qygpn!l9#IoBfu6^gOlCorbg;u#3jbw?-pc7axj00g(v|F74POT2Kxyt+XM`~N`<=1?3DywM=8w=q%w{D`Zw8C;salp&HoYc zKK?cldV-KI+^KhV-n%BqDdj*}c5e~@RSt0(DR04+u= zy9U&HS{UUgZBc+;S2;ru>Qi2N;a7=9K@U~}Yy^D*CW$ln@FzWia!)9JKD4awC^EsCXYm6!b$N|79u^24VbNA-8sUhrl@xZ zxU>4aCO5bvgOg+_Dv%LFuv>Xv6|Wm)bfOjlZmksBF@$V-*H}g|epm<|K4$7h5Tgoc zLYRwPwQ=|Z;P2xZrN=&?@`pN-65r%m;ipuXlE!OJR!Vm1X)*&A>=*5enT%x%odMpx z>%!X6KYFxuNr8S;-7IW~wGbxR>S7vSJ`QWu^4qj>76rAVa1%566?}#$ItFa;aY9gd zgA~A0bN`X6zoyiZI+q3&yQDB$0JAsfo)s@HKgS8#fa`9hAz+BaVJww5%lwQB1i3w) z3cPRa_lAmJx~zL~^cab5Y#a#J$Z=n>xm^uk3Fb9FVo|P!Poq%f-$JMAk_jZ_B|A2? zeG;Q8HZgbolf$R~3pfhhMW96pi9%&H%PG90g6PdQWMCcL8wNL{Nb-73bb5rsNfA)A zIFa@D-mPa7j=DSgq-iSE>BRGPVu1QrD@OIJMVWAkvp$#tT=AV?vB{gCD24MWY*B`6 z5K&f7rnMXvmBrD*1PkQ^^Q!VvQ;n79Kx%4#kl+2lUB^9y0H`YilYVqbeR^7)4%$%o zw2+LC{IpuXMWDpA%NLAzWqCw}ePuRnxf|RJ###_FT%?qQ5xYAU%b`}5)0Qa?R--h9 z6%nMpLCYn+QKq5-ZQp4ayC5pV@fuO%3v_<}`@N4(MGwt{i@MLxj4(pkw4Hs5FbKlB z#rThgvUclVku62P2pY9T%g3bYnZWVe>V_w2FSjrAHuVl_LF)BsSaYNir&R|M)@IU_xcIsRo$N+BU}& zoC^Tu7SWrXn2{%>OS37Tmr#S8+{eB>Nlk!sby7@V{I#p9uqk5 zQ@39nndeU7MO4=2bhIzntE$Zo=C{|L7#@i6I60;~Wl`NwVmxG?SQ-c)$r*T46Xn`2 zc#`lUco$Fz1!Sd7=-Gr!VU7&yioCKN$JkjNA?t=m_gkC)ThY+y8@&Gc)>a9|-P4Cf zqjmdPA^`|qGt~Qb_z9Ed7XqeCKVs)nNnm?!^>DD%6D#67XVU7VWi^ialZhb5-DNSS zLd+2Y#v1&CU7L1Ceop_q$L5@798jJ24b_$Lc6J{}&cVU^n)SAf8d z{=iOnV#a3|LLBrvzY05ih)gC*4p+IRB0UqixE|Zl1A!F!g8?e0`*S`K_-F<)Gf4-U z^)r1cHgba;P~_4vGb?)egcNwZ{vvPwz!3~j)%gyIlV)G1-)JUilDqtwtc~#{_sl3K z%G+4gxMI`t)eJnLs2J#?#_kU4$%ZN6eIw){ZyA;Yp6uaJw$vtqd%#l?zL=OKHm?sK zqW1AWRu$xE#6cy-tF^-n@513FK5ulEdOhf9vobx_|ghRCVwLCV$G&;}n&jeOK+QPM#4qe>>JdIEvKZSvZYBYF(<1lYdm zM_?w-^{x6d5godGnF~se2TY!5QVHqo;nQ{LW)LnrhZa(dc9=WBqYgccG)jNP$WN)UAq2GS)A(jU7=oPepYaAKps>_@DKB9Yi~m*^TsPQ-u(Dg zHx>_n<^h?JcaeKt9$mdr{^k^}WO4J3GnL|WK}X29$S;d`P7zKGkbG9;Lycq_)2m+f z#G1Mmpx*Z&hR?k}ud}2k9JHDc@u8@;Z0qbt+Vv6Tr6pNQ5=P6^`C86{dTE_@f}Bx(N?pT*$k)jyha)D zpCIP65i^L(JiSR%3ntyfM)K~Lu-T!U?n{r*R&n#^kTv5*cBLQ#*0xsa34J=lr4zz~ z%%x%$&_E96(J*t{1IU_brABf@Q+PrakMv)+7Z`NQ*}$r+{OlU3zfLbG*9-DQf?M<3 z6@4$c%j=mZ)F}bl?|YW=({m{aO?^xrMdaOi*p1< zzUP5}tCGms!RB9VUDlGgv9|p-2>+0w)%ftw!3!#Sf}??Wu{Dgl1&49?dwXV z26<;TAE#0!RPPqEH@6d~7PcR9;XF}?#}pp}`5;CYWJDyYns8nc7~>o^ylBhe_QQo@ z`!qR$4yWjm#)(a=DmukD6FL4NC#iNtC+gcFP*+bFM?{MG!;zo5zE*U1k+WhttdJoTDYku)MIk3hz)5$*+=u}iM2$Q37I zNK|>bc^%Cp2T0~Z|2Xk2*6Q~GOAI7NVt$V&feB7p-ksRD7Of0=G#+$`%^dHUwl~3T zI%z$ZaW>I6Wo{U6d8-R#4S^RYFo_ffOPMB5xm07gk&+ZK>z~rAbBPRrVt+=~R zV0z!wwj4<=4~P5p!Ukx9^Pg+m({g#(#U>sty9!w~&vQAc|2F55_bYKf#M18_YeH6v z6+`}cz=y(ike0c-@PySnh9u$>f85n_iJ6{J?nyEUq*&#z$Qo(VqREWRn-f?D;3Z~G zBYawiIr0`IJ_rjXpox?axowYDL~VYUjD7u0?oZ>!uEIkSXbWkDi;UDfR=a;p>)D>w zOx>l($`_1lt^13#nEHE}JI5D(^&@y-yiV%5kh#xs{13L*)To!jW#m zcGvV5PuIK49LeWO#=IcwU?LO%uVJF)F3oMam?tcgRKxAP2&6->#@-nE71qSX|8z$_ z=xQ4u%7U8XvSl5{^W^6A&g+k0Z8{}XsuLdC@2&hwj=Y!@TiB(b_L}V5 zE|rPl(w`a&{9R2@PdbhVHrF*+l+<|Ef=Vql6XZ_b7@CpzaIw;_z6Z_e`DA1r5_j2# z3#EkiACn@2O&nGsbS`V)Q}44^4kC1(R6O1<5m!@YrF@U2C)d)uNSp;N)^R-sk}R@< zXB`_Neq5Ezg_OTM(_1UXnBiW(&xq#xDSh{CNY$O?Qi}?@v+U>TFapB6+ zq9m1&f?qs%8x@k8AE!Y-DjI`7SUYv?h81ECO>SrAEuO)SXS=MZ-l$COw1bTA4Z73G zvuZxK_n1H9Zy}qcz2GF@H0r;lcyp&zjdJiDupLM~jB z&dW)5ahUa_1JDlQQE;IEfuq{(b+a;Sh>%Sd^ZQ%dQlR1>aZ~r4wE*P z%C)yb*}MwSkrHP_-tTP;OEJPhYrZ-Y^?j2>38$oB@MNb0&K-HN3Q2Cc0x}PM@Mx$Z zp7fuEobfV0OQ@kF_DbSF2jJCr7lJ-^9m!cm^e9Sh|18t+I!tPD$dq_rpxs)1T0+?R zNJ^~RGFh&eq?jDj>MXLD=KTNnS zwgH7vqO`_fBB{v0s5f4s$y?!K-P$!o8c`N$EEHhND;NU9V2?kOY+x)7WZP-t!kG7v zFx)3UW3PO8orcg=6c<~JU&u$N^!A=*UdLZA-K z^~AZ5>cVQEX?rvoj%-g1I`SsBA(8tmXzOBo(gX5m`ij4XA3EnbM_PoW&~Z(SClrK= zSeOB?Y>2e#bB_cG@cPq^^gH4tDRAGZD+H% z6X7k@v48yS+Yt>PrhF!ZXlH%zl%pOwE1g;t3MO|3;>XT;{6a5u?ZgeJ$lg-B-_pjH zg5MzBpPK_gXs5=T@mA2{Ywk6vm~_+tlDtNK0NTC-Ra|)K&qH`jx$=Z^q zDqcPsi&U@RK+8LMFlg;5HA{tSiqT;w$PS#=!KACYSJTwIYE_3f@$Ta3|F zN7e}OCC=Kev~GE+YvThZ`SNT7$TfM$FQ}eiFLGw?zohxaoScL2CIU#deK${<=2x#0 zd*k%2YpJn`!kjdNBPKd$#9p85*~$7!OvGZoql@YTVuv>Ks9rbET0*zK0>(c%Tw-%} zJts^_RQPv)?1yLGgXwDUVCGGch=F9qBg@!C!Njq1-E=`gu4%;I*rVn{)8xwi~ zj;e5B@t__|Uyd_+t*k{F7?09t-BCp>L+Q#B@l53tSEOx+aca z(WyWpM&Zx=q>)lqfy_D*#0fdge9Y@ON=j0|dHZVw%-Ma?jQBQd`QKffHfzKzIf;1= zOn4f&$}uLJ;)Ii#8Mtncfp15_onj&;2tWS{#|LSyo4{EMAY5v>Uyln&Ef}Wb4d(UY zL)5wpT)x{ECQ5bDMXg2-VPu1F<9&8-q!|wE|57Pz9C}}QONJAnPsAgI;eTkwb-z$8 z9ek%|YM4HJ7roXQ_qJyZqfI0+10}I*uny<2e!X7vR)$QD#936FIK+10Up_jq*iP^(Nm9t3G9xo>Oj4fwwBwjrNLOw@*+Nl5o8tCQ zCx?8^XZ|c*OHi8Q&FgyykFSn*=}cp1>2Yq%%yOmU<>1S+Nbz}Pkq=v)4$Cb8kWNdA z=#F@(?Ao9-2w!oqXhsANN*)nl--*u}AF_-SdeWod`VIx5u5@1vxKWb%2*}6uh7oT| zwW|W~Od`5}1x9oZ@Z-md4zdDX9MkNC?7%FM7oip79C`85xAt4H^?;!%3Iufg^nQe!QSce0ErzbjD12yOA`Y4^9j)_h6|5)iw?~c}p@C|@hj=!B zm@`*TDON>?H@kvZ%8Ypn3yMm8}vOC7B$Ie!Zg_U|%=3UbOc4GP^l+??9&y8=>m&i{7Svlz5m@IPN zPj2cvap7e9l?pdfUa<13%T(igqy}dU2S-Ru(i8h15WoKf5Pl;G>Hja#L1zbZV+T@3 zdKqKae~}0OlQ}4E^sS^acXIzF_HW!iBYhjEe@J?c-@v_pXom`PO18>2=HG}yv*m{4P{wiRP|A$!Xzrz0h<9PjNF8@mHze5-Q$Nu=gG8gIpow&%x^k0dK^z8qI zxCr&o%vsD{{I9n0_guW&%Xf|8Q2-Wfs6F)M6C3TMBo4XEt&i0 zaD0yj_}{=qz`qXse>*V%|Nm?y+1T0s4_nD^(qZCOOT3S2^5@`M>Tf(zL1fj0m@4YY za8%pjm_)Ni#0bKXLQ?aVB5Y$5G@37;`L;MBTp~WCgLREVH=qJuCs26ij(NA&hs%$p zZwy|4lwy|1!Y!vSo=YM^bcvsg_LwR+9C~Ed{TXT11F>Pf-VW0EA9&tX|-=V&| zJwd;yN8%qZRF?8g36(srzf@N`{#<`Ve*}pQYx+EXULWoemTnxl`?{2>ReRWTrOL-F z_E>u`gi7P!RC3pa&{>FT5)2g_4z{C|SO`QOO|H6DS!dQ{dYcBlq)vKnE#*#A?whtk z?m}8a-zN`epf(^2;@$QV@V-{QfCy28k{D|*F3y#D2;t{^LVb@Nuv&CRil$aTGZkI|UYRUU z&xdqn&!T*ecL>$9{D&JNZ_V#m$)^J!T0*d7)qskgvsduVR>|^EpfCxbu#6Q!s6O<% zeU18kmUpbRhuKCjdUe<|je#;LScS-o5&!N$LaIIIW}=GILY1}4fpbgXxT@2Ip8>$$ z*@J2M7&SI#YQVZ;ny`Gcxbu)mS_GGRFLpuYwV^S_Gv@mV_@cE6cH(4hNr@&WAa=fD z#Cc0dPVnf!V7yc&?{{sRm0)nt3m%q@LtrSHo!AsD zHAffRlFyP%F&B3w`znj~u+gKZ{GNuYed|bk7CJuD2Gk_inD}whiEnp`fzZoc1a5MW z0A+(#0!V2{Ls&AA?MOlUNnJT&Fj4DOF4ik2@EWFH_L})l^#P`l)~Y7xK^jnFRlvqM z)-~U-!I;y8VV8O4J!L;~luV8QOmr$e)WtDriEH8gCS2w!kv6uv=j+6vMNMM# zu8wGK^RKT*_Q0>x4VAcK5Fek9cf8LZ9mgo2cfp^zDcroF3!j>IovOX*jCbp{xr%4W zv%LW(%Hr0|{2tcYw4I=(!WS3!S7y&_Ggg%}1bpt!#At|lAuLWelE?%V^?;}&vzJQsO zvpR%Pn&EzXxtmtbw>{s_s?U$Rc>wn>o>yL$g9oKvSIOmI9w;4VE0uJ|5=ru{qd!H; z1Hb0HLEveXC9JnZjRys^-qmXZdl!D}C!9?049b$wvRlcMCYs@qnvjTd#_rB~2t_-J z6RxP{iUx#T!^x(PqUBlxLF^fxG`99D0Jyh=wzHL`GQG&A)5`TDRi)r-{nPOE)v6>* zW?rPF(DTCGvxny!cco?VDj`IF+TBJW3hge=TWEM$q)!bQ;&0L{XxZ=^FEtcC-V?<8OWp^t-mOKfQGTPi}K0bw1s1j)q-gWhyfNQKMC zC~+{;S1~5GnZd~y5u)j@71p>W6!{a4XuqpT@V0!b5d=OnY@o7+e)qARQHh?9j&nt?7_6&Hh%@mY}2? zxGp}^oCx%!r^J4$kS1f5?^Y%!IY#d-12LQ+48JI5H^IZUr}Xma8|~%or#QdE~lFuni;OzKbU{#b>Aam zQl&p%-#p0rmnF*U&WXnhv&a4KWRPvnV`CpE1{_zMMfmXozI$c)3UFmou}N%CcW)nZ z8-!$sj-fJXOE|b%*#}i|;}Ig;^T?MTy~q69?$X-RsH5?A77v!?he~cqNH2K=&EWpI zfjoF1bJeDoOFJL=5B?A`EGyI@Yzum_RbtXJfiieT+(2rL9;l8mj9FI!Icez&s-uGF zUl&!`0kl>Jv_}SOuNO>z2Ac?D5fU+KA@8Jwh9TUV+?ADZued#mvJBpyf^nGxzj zNJd)>hhR6w>7I_fbj!>{yX|rHvmVhww~aliL##k>|73#>WmY)r|4?T949Lf~Cq^sm zRm{T0KU`wa$jGXou8M( z<|tWi@DVHU+$Z_r^gdZ?7*d$4szHXOm^s(vr)cA&)4&1N{jPPHC!`Px#z23uld5+! z*#=*y00;1+(%}qD#|g9PRIR{53sJUz`cxvgxssLoi#-I^IW4|1#?!#Q=O+K%t1530 zX{(CJD@;dxF~e&&7i#OOYP+|q&q18?7ECuPm{m8b;5H*<#7_vFiLaRzdD8BxG7DnE zTi^tHZvQu@`4ZLy-~0ZB9kJ~y2lYc$AJ3D{Z75oG!cpRPZV1qhYdw)rSc}FNslZd= zjtRNi`2!UsG6!3Mm)~9&SUqu8VcVNGBxFc0NbXWgT0IakcSm#clW*zdo8hLfg2Y-h-E@0h_@RbL=`W5_P7m@WHGxVjwHHyL%M5C#JP@2C#CuG^qDfiml#Zuc6^ zlUJ&;2khHygRR{!E~`g9NC~qsj5^XeSFR)a_{cWI;|QCs#0}?HFml%+{8E?7QzOJP zdHPp1c7)$ndn=phN`JSCa~}9zhXp?3foorA$1ZvM)?*9L*}d9w!T~2eexNK-088}s zamr6JJRv`Z~~YUJ@Y)_#l)?C4D(z1LXyIQ8AQMt?^8(bNdSAv+odJR-h?OiapnS5@zqktqNS_IJ!ylcMYQF`|d&6D8_G(0> zV+}YgFxMfW4yB-Ya*+hq%5PrsBv&2_4vy>ntvayeGF!5!Sm<9STa!Tr6nXgJD7TheuGV2OKi z=|TZt>;eKgS+DGToDj9!Xku7Ln^+b0r=^MY1dK?H{Y-1oqH=Gq0uLHr73i1QGxoPB z4q}=x1s}ZUT0hBlR;Y&D#OZ{sw1YN6@p$OyLg>v##TYo}OO3z*SCI(=rENAAoduJj3l7x5B zm+r#mLqygW-@b^oJRh*|WYQ4`=ZO-4^8}}Kii!Wt(|~w>a4Dy@QY8A`7TI(T`4iW6 zOIL=xgT|k=DyQ{;1-ETluo}^F`|@6zI{Qa&!>FL|~xQ zHFn2W3F@qhmn8&q;w=u`GCRfJstcF2b9BM3niE+)2_B`~--JMg6Bx#$`(zBDR%6NU z%QfUx0w%}bwvr|-Dp2uU2P-?T;Z%q@%BC8NLoZ@wM)$i)(08&_{t45l$h4wq3hB}k zT&}faBOK~NI{MO=;SvR}4qJ#jm$C2L$q*Go^QJjv)O=-?ru`d{a5}Ys_?Q1KTomQe zJ|#s_ZMmL6;@67%Juj~9O}0R~7Jc48O~I(CTw3zNNhrGq?Edvt?{6{WG?d_ugdIwFRnUAICP zSbxo#sQ;knKKcPvu8Xm>iw-m`k%QZe;sL7DPDq29;GpS#FdD65Dn#vo4T^KUe4jVDv3W zijjVdYeL3F1M6aZS0)bi;#F81N>EeZ%mh1jQtPzXrWj_f9@M&FOHykqqHi1Uype zwKtfssnbt55xLYSz!6jT>CB0#nHEke`IV&;@~?wZ9P>DPti^Df_Q{jE6ahA}lElQX zmTc3k{RVC2(-Jr1$x9ZbOwy86HQdg90LK#Qa7J*48~m;if%$E{1a9^*wlav6i_0{L zUc{ZtA(4q_U(yOaOd3ihu;O-Vx#%yAqX+5~_P|60ynx|!ruXX_z9YEW7eSRHxW9p_ zroQznpk?Bj_V$D?DRTH5TyKvMJe^COooWry2sQZAJRV_2xJ(G5iPmH9M!5YDiGlv2 zA#OA{j2D-m1*3|YWw~3gCo%cZPGf79mN$MVE6bQOJ73n=M=bPH}^_COiTyVO=%Oh%hgrvC!Inu)mRHOs>&WO7!-nT1&oCXn`pH2 zh@>5Wx`ts;v@3@y99We?-5NiICBVkA%=CN{_Z?k$N*Kt5;_kw z^sWaI*{NFCe;#8%RuW8G@_3`PSOUD7>3RdHNPg~AwA8HnApo8`%aW`(%jf$wI!r$? z53%9qrS~hGsrOItDe$53AHcR=Z*Zl)KZhwEz)ODgB#h45EsQF}fm(MkkNi0>WqUAW z$U~@^z$i;$XeYHgURs#$VlFZ|O-S=qmvps+72(Z&w}XUdLq3?%ZbW2DTx?Ei+h8Gu z8aITz%f>q!O9m*( zAVt5tq`zWIr)W>{LbU|_Xb5xq3FQD;OfbN~P<%ht{}#}4hip^|VKi~IZDx1C#XdY_ zj;PvIph_f@yLAZ|Tl47XbZo`2%ClA?*qG!nvx!f$J zfd@=vcHyS}M10#~tBOZa-S4x~fFvK%aC{DqKSnj1M@e=89Np1jJ>z;c_w0*e=r0|nL*B;YX$IsKpct;D4v|Z*TqETzPRIQq$06q@+VuG{ z_W_se*q5NP+%+}7SYggev4ISG>V(WGhfS{D51L0|VE#l)a;o{h1n%Cku^=C7E))BW zee}o;OCl2)T+oTMML{CsCRKjT#YT=h%`m4pIks(q3q$B-Xqln1-Upk;2Vj-Z+QtQa za{yW?3niHTB90yryXslTOEO2BoWz0q*mo0StQ3NTq_sOrhx1_qbw$RUjwqIYq>v4a zBKkKWqHyhgU!jHpcIIq)&cxrH;e@qRl%#?^G}LJ^JH4008*+pjMYUI5#NpU|pzW9Z z-Oauy>kY95KLfD99>WM^z3!gOgrFe%v<1#gO?@dKH18AgP^W7aLdKxgu0xjG1)V`? z3fKn^Rf@nQBUsg4`eHMi2!{5BQP@>UsnD$R7b*#02kJqfMyJ1ArEtM>Vb9k3nq3L3 zdKN?(tbHo#I;7>8Zj?n_rtTI5_%W}9w#s+eT6i;O^F~~8 z$oRTq@LjUZLJZXh@WVgxV;5Jee6yEtU~1Lahv3x<>!H;mgf2avk@!$n9)gq9B#DX1 zOPcssOydyFJSO%ITgXnOJH9y}^xA^m+yAtPvZHYoHBLO-q^)0GuSAS>!{V55MAC{c zj!(lVgP?{TRaf^}jClb_s*fcT84bB|LrL9x%J*AD>kM-0^+IN+I2x8`IEtpG&RV{r zME=6YRR?11Ie95f&(781zw)Q7bb1S8(cQUWjcq3@(XptmcD>@W{VEI<3b0D04x29j)ia(;6L?0~qNdE1HQys62y=K@54^I4_ zo#IYu2X62`CG;UI_P`?4xXb9$p>-g%etl4C(zqpp^ic2JGFN8U&p&KS^7xVlXjd^& z2!s}zQ()domR!UYvoaddKq#)G%=7o}20pmODGIC1H7!qfD|k%JsYZxXaw>o~EfzB8*%ltDHK~w~16>)ci zE=d3AEMc|w$TDpHDv_^#*TKiP1h^XM&>>oN3eQcj@N__pR~ta2>kVbPa-6b^XuP|e zgDVQnOJuyu*st>9oVFyC=Kh|X^5R@t46tNhs3|7S_7Fg-NLxWOJ=rkVDHZBi=_+B% z-;ue)v47-(&d+dRQUA*jRHQ9yZ_<20mBQ})6(GQHiwx;5u0a+N|xW|+0n-HFJe zGrQdEJcYhF(3Q2F8+ZnJcT#Dwdk+g{JA8$1d_#eT4;ky$0&+u1!(mfuc9Iv0fiYVn z6GFw%RvAPUEX>qP#Mu*KO!DW7XU(-{9;V zJzyeoaeOEktD@M}>2#1wE-a6YzIuWW0Z zG|u!r(51jD6^y#Y8m~mnVUEf89F4Tw9<1g=ViS640d{c@*Wf9S>0ZgM{7E(PaPTM0 z#o2iJ8K}GuBgh9{d-|0?0deKhATCY=4I%(qJ$nS?W|yucP(EcY z&8JZg@zLJo1QSNK)#Pcqbh5D|p1T1~s{%8L1$em8rL;$@e;)X1DRd;dQ~0f@N5!~6 zJT|TG2vPlGSfc+Zgt!}Q5Y`;LGl|zvgh*&~QvVwg{V}W^)P=z%MCCH;Et=~wHW^M8 zt@_?u!4pD690UbTp8_xfZ(t4lxyG$@_Y-oP9vE2`1B3Z?(6A`tJ#k5=Os@jv`1$O+w@f9z)^{LBfMOH%i4U zxniwEyKS)ud*#-8XuM5g0d;fb33C`|Q-7*c2=W!KMi@Nug$GXi5|RCPM+GA>@<3SVxmdEN9Li$V8 z`q>z5d=z+O>p?bcPMz*h)p%07tM`o6Z_eEWEX(QMj3xObpD=oLuGX<4=g;?H%V8l} z97oW-B67j!2^R}!o`u3p-1pei&5Dz9q?;P@+6y`)Pw(L^7o9#ip!;>Snia;{&SlwW zjt%xwwjUtdCL}fzXN$4?$BzS$g}%i^iVH7V^u_O-pX^1dx9va0ZQBoYzZ+V+*rWg4 z3$O8gy|J+sBM269Cg<3jqq2w#2W!_}?3s!A%w5|UAwrpV1}X=*USQ>M)bA@R1IqV` z!LH9&ajzAb3|0J$f1T8pACf^p{h~)LNCqFVn<<7wLIK91X|sIO!51~R7}{>eWNbmQ zU%1!a76>BAx*u(@B39_s2zHXBO;fM{V8WH8=@7y>HY`JC!H(?z(ji3Cp*}bty!}B8 zK$n!K9E@}ZM!Q)mOG}tx3#1xWEfkOd9Ke+{>9b4_btl-Hhs0rph5xA_ zj`HiQ@u|V7)laH4QJYpi@J=677Ic@X!C5#P1j>#KspxN?Qbwg41sgTJ_H!;;T=reY z$9gx)Cg(JPhZq2>jJYPm8vCGqes^QO=UK6B7-+nabS|EQAPaE;{>xt@x0`w?L5x~* zAeV~wpor#`+%xI7Q%*BtXp{d#T@7hJhOmMLV(s)79YM%xeMsT2NCvpwTg0g#y(mv} zB~G8r8Z>%i6qNNJWSK|Ak6%dw3YAb*+EikbZI9Kni}LSW+6+dCOx)1!8*ff%y|St> zapi}3hUR|Yh`;6E`Lr1%N|q;xqZzSRV{*%ALW}5T&?wPQyJ;^m?y7{bdrw08k9DNT ztYfnl4=ovexT=uSH50s@5F36RV2;8dccNq8Fu7ME_ueYQ@$baz2wVfeu{}ZFs}!hk zI?2Ss>+~dvnC=}2L^?_N1SDge-iHJkz`BW{qy{T+184;yO}9sx-~5x*7V)O!`rX4W zT!@0ro?P-KS9^|$TRQ#G_Mz41A5Kj&!3C z5%|~5xcYoc%53ZT9u~>jpC(c}wu`-1cwDE0{@4ABs=f7f8|0;+{e5zPvTEY9K@BZ4 zs#>TOx@3JH?)p@t0L(i|_D-%XY+HZd3htg$PuH70%C4`RfW$q@%`PA=9icGyZi%-d zz;v7l&=VCm>%0l5{z+@l`ct;gv3-t{K#unw)1?H%narsIgGhAlQ@BO?#eiI3pfsGF zNLZc?jx}%%*kF}#-0vLPV9?Pe7iK<_+s02D$bP*srd5Y=pFQAE)JRMcIgZ+Mr>S}J z+ekac;(AnCSVdA~82}6F)1x47aWRXtql(OPMIf2{;B~?^ng(K+PKk+H2}jKDh*45` z$;PiQ;Lw3hrvLk(Fu;Gc_x^v|bFi_{Gyivcj$v(W$1OmDw`=m(p!Zs}XJQyR-!&+9 zY{kg9kxMHe-DtG=Ep9weBn4l2SV1Mll%`*`{zzr8nb1ef$9hrYO5BFpQcy1cg z*UhcV+tc~O&F$rOn2><5w#K)|-SPQm`20=R*W>0jw|Bei`SWb+a%<_}@?$Hq*XwzAJK~TAJ@cU6IH(b#AlLEn-l!gqk8;9CBr|Y}l znWu}%`0GA(@A?Y#eI+-C_wDBS<5U2@cDsKzQ_+(v%ZH=uGxm7))2t%6Vsw4IqoT8| zCGbUX>;Cro^>x%xv9^a*$>1}?o7m>~depX;qf0G*sPb)e^zG?<;Q8qD6B$}iwIdT& z5MN0*ykGzM=6UJ3^z->e92*Z)0RQXy^64n`==pGux0VmZ_4;5-^m%cqGjkCA-QepH z!UwM>^vkC$G*`r~fQKgy<@R~|H{@4uccU!A&i0$Ckf~8+OfOy!*Zb4-;Hd$d4}Afk zn@!uP5+zko8~zfnrREU4%GYl4>S_-RwlIM&9R@S@!rH4N z&=B*@k5}kI+0Wk*cBL48K-cnGp1=V?E1yUpjHqA>8vF9y+44@h!(DF~#`>z{U1ms3 zQPVHmIU>gnNR0EO8KJGv^Mt}22_Fe|FN&m)L^hSbn*-)C4Pe3x`s zgpLnl6@vE+80170HCBm6JZ;c+yp>noaple z-ROBO8}PLqFZzW^L`~pSUZ3TxkSL#&SPQFyR*-lgC{IQFyyte(n%4Hrn>-C-|&M@iOnrX_=msMm8=acchsC2RScsqW&AI`-a06*C-@h|-62SD zcXubaySux)yIZiJi@OutgS)$XfW_SdZ@>3fx9YxEb>Ck*XZCcT&*|yznVs$FhAF+J z??f%KIh)D(r!n80YJK3<)#9~!na<%kDK9KS--YWi02$011e*%}`58UbiW7q;DodTD z@7%VuR5n|gUSPC0el_*Ssi1hx%fVXrRD4lY<9pm@t!0`)_SQ~M$Lqsgm)uj?w7i3A zHfTjr;@{P~K>NBuxw@I^Ssf-t{?{fvWNTCfo2Z97F0udf@0&4FQ^1#&a=d}r+QAJG zR+Q+oBjpw${S{N?&Ki`iC#~D|^pr>WdzH@P&Q&EhZ_`Qeu6E9?N1=j~GW=;F<34|; z>lJ3`x7{lXECBx#^l?X}l|zW@)o^8B%czee&~AXNegZP=tX|sqrrE zqoqTOdmY?&_a)lBCz%=bt=vk*B|?{8emiSr(8=`zEeAUfJ1yQY zJTBDhfh5g@Tm9)m=wi~+nhl%qwVv?DlT1_+Q7a=&lK_F9t8j=E4a;R4&5ssZXRx>V zgk@^HsI`?){ECKV4an~mwH#$b32HBx(L?{9j6BPa=No^RZSCe51x6SJ{w8`Vy8mg( zH=sP9@&~QTF(LfeS#1R$(mE3?y0gw5qE8M1OcxRd@|0nh1k2N|+4W>e49u=0SVjf8 zQG}BaKX_*ff9cap5+h@Bx{e|#4>3B$A_Wc`hpNP;Q!ACRVi`}Z7!NrFgT2vg+U0zu z3APH-wRl<&8bT8Eb6zIluFVm%x@mBGgSu^x+SnCu#y9~RbS#Lm0;vmn zfl#=gnR%Ldx1U*uU9?e0!NPk;mYiRl9|cNNFg($x7v?V? z^->5(85W#&m9hxBzN;if@5V2}#Z|bQt zk#~~TLi4AXjm#BNLMmYuYO8-N+7j`L+h$BMb2Qd=rrFc3bLgWK+DwHSP@{cpU-I<% zE`8jwW+wj0qcPVPDgZKck+w+2#!gc9Jc^ee17g>cJe!dC5o-_lEHd3plI{=%z~)mfp!RQ25_E3>!h% zKKWqmq%(|NbCOPE+5e0II3k|odQBPiV4Bc#%6|IvgfCk+09kL$dD21$60fWzV>(5b zDV1JA4_Ial(X8L9`Mn-;bRVuCLGJA!jrC&PlXau_jH9;wvJ01SlWAnGuO$Hjx$)98 zvr;pT3=<{?cO~AV?gn2kvTwT83!J)zc03uY!eX=JMjY_nD2<7~RS;2Wh*rce#(UJ_ z1e6m1%!%TFFawAx4j9l98RBo9Mgn~ukA;4{=E+QezH7hG>HW{3O@sZ2P|^c%e%%=b zc}r~uqF6_<+r@RtOY1;#)_y00!ost6u?v?G(sGB#{Fu}%H!p)@(^&8F>}b#NUXhT9$*(&YD%xb_ zvMj8#FR8+tWO2a}$*%@}^h#BoqJo{vg3!v#-L__s9_uxq?E{mt4Mv zO48j_q=9XnM(|?j4S+$h&%wCT_8&wt=ffs$ujv)Wrd|g0?6W&}fCn)c78o!gUjH0s z4P7w14Vk?2<5ILu!1}g{5@B{oQP5-Wzt?!1myjCF-RLs?7hC|J`u1Cc%XDk;{u)nA zvgu*A1L9!g?IpI@sNHp8i1SNLOWU!&AL=F6!3&hVzT5iWhO30zW0|Z=x<;dCkbv-4 z{pp>!?`U%^nm}CEJng$h`0cB$CPy;BxPH478yoWV8W0p=Co7yvl-|pSR&>N?Id~!c zS)Un|m~NRs4i}Idlp2$mwvY(3(3NJCTDLd(zQaKZ$B?#_Noc94Sn1A8jl-EU{#ZgF zlTP-x$g-(6?-w~71w9UDh6i#pKvkd12vbiCSb_N#3LM3@JNbFa8crzn5X#s+lRux@ zx!GGvwnldIK^hQ)v3{k~uJ(q3pDk26TX-DGsLJf@COg?Ivi`&>z*~-XNqG{=IKtfE zhHxwC$pn=_5BC5HC=i*2*6TCbJHe8U%|~n<6H}UN!^gp^AL-h#JR3*YF^_|8M&?%2 zjiW9&4P_)_sR=jh%L+Y?EAgZ^feMNLYZ-Te$dIe57s$b_CvH>#ghnvcQ|8Z0L_3ml zZyG*+)w`fvm`gSYhCIplY7$MK!KTB}_KlBBE^U&SgWhaT(p5}{Kjy&1 zg+P_Fic9#9B~T|_F~p*&HLUU09824EGMG`8$sUj4H&Q z!lN8Z3Nh}|H?sVyS!G*h`nBxLP$jPOhL44klr&I`~DCX1CXi-XOe~lO)sPi#Q2Y1CH~E^z?Hb)@qjDRPSc6 z4ROZ&K*H&6lGuhm{7*PUqP;a(Gd!el0!O)wc}z)OvZY-=*Vc>9A&d+aV-)Tc4=6p__u4DFOUINwg<`dy~XPM5?2#7qlOtJ!`;zNtZ~By&vIcNmpOm zB@fUt?gP<1Yk@8IdpffLpm-9iXxlxD(U4`%0^wG(bE_#r->*|1oS|^i{&!pmlNyOk z=M?tPDe%tokZpu|;6UB|hBmgFoUye*bn`|TSt;u`fU%v0LHa*Eu~du?Crz@?Vm6#> zvXFInwa;QqWNG+&iC`Ls`CyMnI%YL#4;~i6h$Af~;aTWdyExW}XbrJ{3oh%O+Ep zN9N}LVnE-*IGaJOyX!PYVEK0HlOUr*$5;FieOqGaWLPiyXFtdYu+5ma7{^{b0p1}Y z6C0%4hXnQWFqWhjI~>0_AcdU78TlI>y18em1Fw_#B7s?&#Ec7mD#@)}W-DVJTrpUzoJ2K}&`Yemri_FZEzUdcKxL7%kr!usj< zw_$mVsk&v*6F6%Q>ufRB%zEkeDv_YR=(a|SR$TGfbeUjE&?xfFH(6j%jHj>n;-0R# zhPdDj5}CMcAhxNcH_=(fsWv0i^DGDQwN4RM@jwD-t&f!@kV4ES{Z*p#7}abittS0h zqw*MWXriCH)^L9a=~>3HAlY|_e4lUot)ZnAkkbJw#QtQ3@7SmJ4fNR4p1yQ5j(E^x z)0lC~BbL~jr=JOhoB(K0M6FZL9YV9|w7;&tM7Zv88t2n8*Y5tzfo?5hZUET>bbK6R z%`7ofhCJ-?PjjbC6nT&k7$-nIso68TI419(1;YAF$}D;Wg~IwHXtJmolzL0X1(Rt9 z)+Ve$v^nCtv`PwE#<>vuIr#63L)VqA;*TRC#dk=yMiFkCg>h zO_xpr&||Aw*x!MtY)1W-Z272*U#%CIr5Wzui(O^wmhp$6jS#7fgvm)JAh}`>oa0e`X4(` zhZ5T(o$}v(xDU@#1v(B)JtK=KWoD?EVwzaSogs#2r5Fh%n8uwTj!te`f$KFJ@)&}A z0ReN9#8t$h1;`iV5Zdn&A&pK#%bI_td&bZflQcS5dUqz0VCOqF4I{yHDk8I~=G&8o zht#P>doFskjtz)_qTTd>e0p0Z1?O0O7@afN$+)L{&?zP7_W2YK?g3p6_~e9_h%jO5 zQFTr9OlEK;@962r4`z#yUu#dsnK;4bpa|<94(>fI(PH~};Q?$hv{htuU>Z}C6i^`_ zNK=m6uo~_SnyS(`mbggHTWuwHs?3gm|8(~7+prg7P5pa%nO%$stvz4)kgYm0lHz)CT&3jRw_H*TwMK}84kt{*!{K*r=8-ojq(=^rfQ zV0s|r7c~3HhWa`b3(+#6y7T?dRJ2LfW(6TpvsdXs!gK8LF;!Mz#oFa|PL2|DMziN1 z+mbr^h#X1Gh~m;R+iY<;o8@4Xu(K_=cHT^I<46Dd{bJg;IAX%qc0v@V1S;wt#lr)K zIhKmIo=tXO;x&M2`o03%PJG(W%w?AZ2~Mw?SPQ0+kO^#2!xNlblK2bzi}U+73{jV~ zi6OkfxDMLO+VShUneQz<+}?3NFBgYf30%q}rVSGvTFSr4X=dtqVyB(mtz1A|{E9zh zvCuID%7PEOEig6bgD=Jo;|Z2V51Qs_)K0B$wOgv45!;d6t{pD|`a%*)gmtiibFjgn zPV338RmC$Ok9)?^@B8xl<8V>w?!XgA7(~?2*0{Tz;Fe`SBPfYHzlPzLzwHU6r)A1c zV&pL?lKlx$bIzyo`mPCBPUT!3id9>^3H?47Y*Exh%vM;LVoS*-_EKYMhKEBs^44~W zL6x3oINcxSd+0w74&uME|2;rpB%8&9Gn=SkOLx&$*s8_#VUO|mGpmauw}3G{I*PUZ^jZKXjC<0VChc%K^E6?yBd0zJ$96O@_6W zB%GNJfECu(t0Gwjte^U%kgg#*$s4eQU)>988~Wwe90g}j0ogWGH*MVT$^VrJ+PU$Y z5gRjZ&cwsrlUQF!&9HnI_{cNmv)j5`oI1w7AiMgjHgznXpSN*=8u@}UZrPzAiAX)) zUYNh;XYPPm$s(ZQa!|4`6B)CS1HIAu@(sXb^D}^>bTjLBtd6L0WjZ6DEsLY9{T9X; zhtbV#6Bgao?=n5JOjTr;S)D_qJxEk~SEA>uo&2FabA!}I;7UpuBr`d924G0ty)Kl5j3BA0*EhDqjx1d z#3>6BB}g};WK125TG*uJqmBW6$AS`3)KA+~50+|buX=y>f&ud- zW^R>s_dRU{ER*&yVsVLZDiXBVON={cdv9r*1z_P4DI>=k(xb z%jflFT7)N0H;#j9W#=kzn+6XOZ*3an%3p=b!pD@j$XR)AcaS!7eTH7xZ%jS7v6~ej zo%aq4KQ&osg7KM9O{j;=^@j~f6y(=MUt29`D$uOh|4RK8z$QaC!iwF%b8I2Xu0}aG z)jc&(#A(?(X*@sE$JR^Ing_BH_uBW?X%+S;r0I zPFIkgG@&+IEGICF%NEYTe5t63)ercYYk`DXPRe&EPvArC*mo6)2&>GZ;ue7~SBr;9 z8VNra>Vk~9jB+=u??GAC!AH-on5wLhSyz$PBHy~iVP+LEvd%$vm+A>Wfl}ky%-k6( z#KtXH_jp#COQf2w?h81p@`#)L?kr9Hsv3{S@4wK|Sv|}5o?}q1w5LSo@n^BvFIcZ{u zC`%YPgYGVGuiV-D$S6&cAm3+ymWz?pS{D8i^wH|+A7_cXZJ+!sfoo!}=H|h-WaTm| zdK=m+mcr%Jq={ltht$;anR5zTG)p(VcY!H6lXih`{;i8r3C%!Ja!TZK;weKk5OHx1 zV2!+Y$0pbGoD3DWKQ3tlB^Hdv2mEQmEyN2gDn!TDr*L$BnlVk&?GKF>m)Qngam~6) zf8U{RASQc5!dxn1hy3^sV7c!$6FzshgXb2=0x&7&=|nTUY~gOFzUTwgn$TRFJEZe) zu%JL~+|UG01JUU2z{tf>UJki=?|h|7mfe%XrL599z@$_a*(mo6KqtP>#~-S2?eMTB zGh!}uu>3(1@xK%rWUiliqRp$jhb5V%!987|y#SAA9$HIUk?Tv^V9FgL>R|?GV6Gr^ ziu)6&o0aV3ybV8*hrW#9;>k0wepH8bGN5M(0xBEn_)iacSD!^d0LvG~^iN7e6abXl zZm1c|nG7}okJWK6G_0!a1MMY}*Ux+NE4Swou={Pnnf#8)?ZaEipG-`C=i7pj$`@Do zT=eH#f|cC5+V+|&9ex<|hF(7xeLw^hd$m_YC%0QCSD;nn6_M53f32jFu2EjW=Z<%X z!NMZu%8B0kH!9|Jhp>B_E9Yl1(4oYlC!V-tMJ4=VKMbX~RL84_W<;Nn-EZSJ%{(EX zemQuS-Ngf_>~{gi@7_nJ1F!5}zPcbOEgpPi@e4AR{s)6<)lU~;-cTuS(F#P4wO5;m zT|T=71RWlv{NJsllJa37h;##D5dH5gQi2t_9YEMEs{Atj+4R|47r@|FUY;;77*jsn z!3nx6Lf{a~4lfV;Wc@!j;KzQt04ulratX+v1O`0QAXsrESfD<45LGE?nBsg8L2Jj= z#e=PU5GH8v>hfXQA0V6v#vq2TBLB50fHp3^bGdn*UHiD~L6VjAdowS(46wJjj=Y_t zC!&I72%7cSd9(-0-ZJad&i(${n&{tx>5eThLi?^HJkt;O4LCY6Aa)70;nBnOlYCo` zUq>tg01EZU`r#PaP=%feED)0cFPHoEt-i zV6JSW{N|k7779wr%XVJ6n!yq>6j73aJd$vC62lOfW&$M6ZQRP&G@A0u^4$1~3_Vk+H*lxntCpGB-eO|;b=rcx zrzBFYuxQ|n{<*m+=xn;aehTwN?O#iMofosOwc4xJL<>38yLwX6$M2-Zpy-`b%dd2aG$uBf!@f6fm75PzLA(nP7o|zpOLo7K} zyzEo@URr|*#V6wJtaIY?N8$L~JP{rrcO%Yb-cpS0xPK!~ezl$*-aAj4`{y~al3%m~ zU4nOB+s5Gp`}mc7S$@vpyV-4cyv=4dv6IY)ZOe&BJ3GeYGWJW9^DV1N2l5;P^%Ep# zZ20h=8NQjf>T(I9b_8xMU+5YaD?YyHk1TAZ4VkMhUq!2VTwEmCIxul;6%yp|O_6i% zccFwx!z$b5^r~j6>rh|iBHkS%>&6o~zwu}gME(?4w zxZwe?q~ZA;Lub|j?JI}+bYk|fHWDR2;btmKvHI5m348H7C1gCKHUB0Jkues)4(OiT zt*bCSq;s$5zGsU^K}7K5q#)=V%Li~Bsnbdau_vP7r*wV_%p1Ei!_1({yZMxRKyF00 zO((wR&o%U6vj*r>zkNTT$V@zUrutB|{_J*yxt5tZcgEOI9sBGl3In+KxK;On5+1j{E-ltkSK<_s|BbMS;2(wYZFN{a5h08?R3R_P^AdvC?b z7e(Uf#uB~RA^#cXq!76T8Dv~dM?D70C3Ya`>c zN?wJ`vz&5GdYh7<&j~?Z?!1=0#tZwvxEtp#z6r`-aksV4CRBF6eG?nxah>!|ks$M6 zr*~TWAb)aDRL!uAWuaYoAgb~$1#5Xkg3pL8(UZVZ6ymJqVsu2tbtlcOC|gn*>{q53Jm55+hf4RdZXe^F8{iWPzy zH5oS5RaWn8nMQaezm8NVU@yMkO~b#f6Msd!l{H|a?%CNCAwcfs`D6Hi9>86?mbG4Q zPQn7(us32aV^qvmjU7!Tlg&K>8L-jzpZ_K%G#u8Rq5)Co=2fV>I6^+1Vm6D=y5;wfRa&2SE(j z*kt*R(*CCfni3=Bjo2?=KLMEc8^{AHsJ80egL6; zi9_%7BS@cj7TEWe;IscV=CpTM-=5oIcUNk9 z&d)1l>A+e`d8Z1b_=-4ToV1FW(2HoPLE8XYVf0qk_^SD=E?SN<7c z{oO1%gdt~!Xv5YQ^O7({bkZpbeeJK;|v zgVAO&sFB5K;SunbJB!zh8`9cqrcqRTf82nw_o|cP9&iVOt3mA(d~c`ACfkUA8Ud(A z(%tzHENL^+Vv-H)@&n9-pPsjf67muq%w!+T|a#WvvP$LZ$kbzxEh1PX^#S9{+sO8_JIL`n@>|Fs!YGmu#s8NejQ_Lv z`2Rf!gNucO>;D~uv21YulYraxi%H~b@JNmY)6O?%`yxXL+j#OsE>wGdSk%=k#YMYT zv$|h~A5_~qnTt3kb(Oz*-Z?C^s!1KlWS=V)beXrl+ z%lt5^{W1=vQIGG}3%cH~gCP6mC5`@SjnVheI42>&K=nFD@lD~6rFzG!eWM`nkJHDu zzm}7$8QeF|zKb52agD=Eng?NxS5?c^)vM>($^YI$JGRYX z1!m5kg@ud^(6V0~gLp24=Op04Uq8OMJqyF`G4 ze4@IRrHq7B;huB3o@uh^91u8>`4#AqRMe|sIJD|TKPRQZmef)<#_2GR#4-8x?`57? z1C_;w-(;ba{>`?k`k`WZSndW?Oz&&*xq87R$#=MlwYKi!FC3eq?0#+T%jWX-*_GwT zc+gnizOnfNQLeQvpSq3T!!N8s8$aZwpa|ip^UXoE{aWTc^ld!mxDXIc;}qHvkNXFza%H#1OqcHA6v3O3JYEZ%I@MJzCr|I`a~q1NwA?JLK_sPJyz zUFv-N%jjR5XQbSx5zCsz|B!CK>El4@do9GvKtj>`0XKO6$edGaOKMV^ZoRT{E@-^r zH(bhpJd7H4y}!(Y)iW3@p6m;TWn&vhKdOXPcj1Ui^jZmKYBAr)k-97|j}kT+i`@PP zQKt0gWt~uPNy5_je5RIb1H?*Bb7qvrT-2%Nq&ZnPsEoU9w7(#;9=^_dIbCPacaE;wQ zxJyy2G{f{@cAZrf(@?%kPRn$VJD1|E&|g;x*KYqjbSl28{*Why{tR3X?j(w*Y5@-8 z&~dBICZ0zJ8C_anyF8<~S9~`l^6xAj!^$_@0rzYDb?}*sU`Dz~=wGVJ{VE7ow9uwB zDss!_o_y4kwJ3u$n;D^7h@?Ut~*SjiQ{X40b*1Ede6p97-QFm+o zOW}Zx)AkMxL+Pn1`5N{p6(icn82Mi|7f+*E`orZT;z z5R(pOq>{D6$7=;|4U)-Q5|<);A9>K>i`|6t2Wh|PJ~ei5fFH-?_UE+|SD|?uPOVf= zJSSh05xrbj>5qSjdJSjo!~40?BK2vQ`h-pR%aYSk(ZOc$x7WfBnT6c5%+;DT!JWTh z>bUq;KVFQ>Xk?N+=X7gI=p@g~r`odg^)+7H`cu&`ZW@^;HVEAWl61n=;qdly9BqlN zzmxhsm-wh6D$>zjwpL>m@FK#+7h8gZAM<7W(Tfp?vNDMp?S%93-^Ox?C^Ln87e(7K z6FHF*sQ0Th;DXW$tx568XYVr_YZdF4oJw-H({%6Ic^Y1F{LTY933r>I zFU8B7`O*;nJjrV@wyva zdpl~IEX4Z^hsMnXBrXg1JOi{4-jb&38`_@-_ z>0;>D!Mw8t*W~ohZF5vxzh=VN!qH2kdPLiS`q(n}oIJUN^v&Pc=MC8KhTV+4zRi~c z9!&E{VXQI}BTeSN;8|c4eMrMg9;i&KT*vA^igC6~z~uM|4eNs-GCv)Pi#k<588A=Y zbNNOJju8zx$W`SoWcWLapGxqr@KZNZ^C)mx+46Tr9p36rqumlZh~lh$Rk?m-P8=*6;MRS;m2W}uF zIzsWGD%P)_mz(Rs#kGU+_y4Um&5+I4p4VEh(ade&IHQmZZ;1usm=o&np>7Wq)7nQ#A%Kzo>u7*;{)KkC4ft&OQy%e2O_& zJKmqAK5$txA}nRu!GQSw-)3nU^tgdeb9ye=lFRZ!-jpuFBU1hlHon?pM<~0o5yf^B z{OnB-VE?Aq9`NsPAcz8`u1+RW5|iy1(9k@=m`SKSZ^wfRULGJ!rQxHqzd`0;qP3Fe zex8!M2=aEbqb@l%+&angQPOP`IUFJl_x!Glt(qn>j6%~qVupdEh!n={__8h7=T1de zl_5EYmDV6EO8a63x$EUm9P)f&y+b0 zE9YPlC#N*p07aRHi`>y=R0QJLk}+?`o{aUx72S|>t#$F%ryN4`q%H+M_%W9+11`Ka z8-;~FC+=RT|x_@OQ$?X=-BmoG#^HTW)+{ zj3>ok|&ipjf92+w3I&zvkf|e6qIsloS&t*H6x&nmm$X=X+Zc>rj#lF;->6+lbLgXL)bL`^0W->a-M=*#+&U(RUH;rqb=>&y*#4|C z=Q4Drx`jYwyeL*XQ<{hX#VB`?^%bD-NI-eiLBy)Q5YX(0L~17&XT-CeUZ3W`hIN=e;@Iri) zU%#^vP)JcKtZ;~h0L=GQVDBrok+6KHNU%AYd6{!rWU(n!i;2F%R2HBJrk(0-sdnpwU2ye8bBoR zXV^HT#2LnoZ>o9LG7dxBRBtGbu^V1&r3I zxOE*q6)B?EbjWcX{aZGhaEA*m*4P>@0e0VbvIQ%jW!g%T|669Js{WvfS-?E7A7w8l zS7lE04j7lKIzM2i(@?fuaYHys@=T|JaL88{1juygd`1>z zJ>}q^Dj3O%U;lA3uI4}dtY9$QwYbe%4>N2hb_Ft;L^ZNfmas)nxDu+jyEGZm)Flpl z#cGTz2>yfe0a~jD0ng6kJ{x*3tlTS#=reP6$Bm|a1hy4iEw-~zNfESxUugp*Of}0) z2<4u^zt;>TdEv*)zv`0HTrp5iwwv~rJOLe+M6y2PgQQrn-wc?D2m=v9InOS*!J$^V zC>G^=BCmvjdCAj8owAoMc=zy2J<*JYG>DRGq6Ri>fx*{*FF63 z+$*ZtiH>Fsh*0}@Pjh>fzk0;NJT!aaC`7&d?WtN0pWAR)$Ga%LIPlF!l=vu|v{`%E zY)>1E`4WuC&~m9T+5gQuOEpRpRZ#xy)jNhy@)pCjkmQYb2qPVM)+nDA(WApgeC~j; zsHt%%=KSajnVHp)i~jezAKp!QEupEkTv_eVsBGmSPdsry^d*Dee;M23gm3E?!ifVI zrv~GXG+@VYl<(reKHa5!9TTs9kf-nQ5*KX^d751RP^?Bj0`gvnhU6pZcsZ&j z?Q#^SIyOVhyfv88MSKcVijvVqT1s7~-Tp6Ac9soKKvoOT<)A!(ZrUA2zRxA0NxPSv z`l|^(ZFMrmq&&aU3&l8wPbH3yG627y#5QlqH-md(^y03%EcD;zZ_id*4;b6?RbaN7 zN-at=TtHH0S;*4k9dzg>${w_rqz~qJIq??lUj@!?Pvdb9zVCgQ{KW$yAhqW&9Vo;; zp9q}cBlG~EK;;OZ?jjVc69sjkwQga)6 zLvo_NQn#(x3||FQInq=$f!Q4?meRqyy0d=8kC3K%NgldS3m22>lekK{V1?6=QR;N!0|9iNvO`N zgmjmcbh54JqqwDLW$gJzSylaUz&rceO0ydM@oe#5l7T7e{@*gn_!%Qjj;X46#Aj7z z{MbFV;~=Y=pl-W&Eh{$M+za%ZlB?c$dH-gFDT@7w((3s=o5aN@Z?n&06Wu~@XJ0ln zg8RmYc!Hf%ZlsP7a6em!t|I@b=`o+;JD8e=A(=$4z$r_4SO3$!M&3eH+Y~$54xkd> z;QAa9^c3zTyW)|IP(ZU1Z*r8IqL5vO13y#fQ>H)PhM5hSHSuA-_`Bxok##j#TcKk| zX6=;CdYNVT5^vFgfeNP?C}kl*+j4X|^aPs~YF-|{So_9%AZ9z#klxy(m#;9pE|2|4 ze3|jJ@?gtg#q{FOVxCm31orJTErJOf5X5dbaAq1$Gir|@oI2Kod9cffp`yq|jdL}D0;x_3>F6eSQ>n8y%0dafh z2mVuvx_&-5qbdfb3$}MsTbyS29hFBy|C;%vPivM_=7y7?3l>pWB4>n(FJg`sgT8EK z*VQ;5k}epix&D_j`u>kH`W9lix$~Y_z$%V*Q?>>^ZdzO0LL|2Vl{bO7l!)J2lh2qm za{tZ=udEgo{i}z7ZcQo^$JNhz+gMUp-Yw2NqWAr`GJoN6%-`#e6zh;bFo@WZ`&;5# zJ7nZqJxBYkTB)-rJuA!eEC5$3ZKx5V1^w`0ik4m(lc>y#ySt#z^huFNSQ@-3O9C*xciEi5Y&>J^TC+6~Es zWmb+{Uj7&p-Lm8pDZF3Mie#$!*bGkW^?e;}1Z9s@UJ@F0y! z$~C+eWQzRWHQE+r4e}sTbC`yM#PV$i(Gr>^0ia{5*zQQb*4#Ho$;G6K9cZ+_%*90d zm!%j45)-0?zpP9TxH^b_Xy{2=B$^iKRFO9pZJT*D(24JEd_l zY$9GCS@w%q54q#E87w}&InIQl7?60h7zLVMIuTI3E&rl}*t3|*Fs4cwzm5BZU#4Y9 zg-2xNO36>6iKVgQj*}q#po^zjl#M5sO~Lp>P$W+;97*G7%@|BWerYN`PP0z-`hZSZ zYF%0a%+zRP!YK0{ant4sjvE&;HQNM^ZP}<2%%dzEo{3&tdd62>psft2JcXumX z|L7}rFqFIV2pZ0j@XOeHy)o<;SqJ})L&1Yxq{#ntk}M;TkNb=88fJk0XG!>HB#r#$ z+dr6J90Vu0cL|sq60FPaIKvC!JMJf2TZPx;6YKnRdsA9Lrx|+kve}+IHTCvVxKm2Z z>Ma&!@b1(8b5N()*uS;FS)Tf*b~~A3GgWxQ*h-QinbF!nqv*&^M-Ljsc7@6sV*^MO z;>695D7U!+e~sQWuv<`Qe_Lgnp9aR6vb>Ah-!1K+4F&4OJs^J|+k|kYNNkTd2^|OU z@Qh~8go|}>o6p18VWkvG<4%qyeZsjT=@+Njs6GkNC77XrkkQXS7c zR+OhK*N}Fw&7#GV!<^^6})hp|X6FE6H+PVgSP)qZ~C(Rv`r~k-{WoBjAkL zoxX_6veK{JO0zOeeY0a8+q|>!F!|CgO)dZEXY6kxZ`cS^_I(aY0rf5@)HK_Y-vxzLt);onIm