Jelajahi Sumber

new examples

sfxsfl 8 bulan lalu
induk
melakukan
a0d173b8c1
92 mengubah file dengan 1458 tambahan dan 0 penghapusan
  1. TEMPAT SAMPAH
      Events/.vs/Events/CopilotIndices/17.13.444.19527/CodeChunks.db
  2. TEMPAT SAMPAH
      Events/.vs/Events/CopilotIndices/17.13.444.19527/SemanticSymbols.db
  3. TEMPAT SAMPAH
      Events/.vs/Events/FileContentIndex/50a8e39d-1d2c-45aa-a182-fcea4192c3d2.vsidx
  4. TEMPAT SAMPAH
      Events/.vs/Events/FileContentIndex/574d5dc8-d1d1-4036-abfa-a90c7d87d4ab.vsidx
  5. TEMPAT SAMPAH
      Events/.vs/Events/FileContentIndex/5ac4b26e-eb55-4304-b130-41e8b39667cf.vsidx
  6. TEMPAT SAMPAH
      Events/.vs/Events/FileContentIndex/8756c4ee-de5f-4af4-9231-6748d5d50364.vsidx
  7. TEMPAT SAMPAH
      Events/.vs/Events/FileContentIndex/9b0b7ca6-f052-4378-be7b-8c1db5bbaf82.vsidx
  8. TEMPAT SAMPAH
      Events/.vs/Events/v17/.suo
  9. TEMPAT SAMPAH
      Events/.vs/Events/v17/Browse.VC.db
  10. 96 0
      Events/.vs/Events/v17/DocumentLayout.backup.json
  11. 93 0
      Events/.vs/Events/v17/DocumentLayout.json
  12. TEMPAT SAMPAH
      Events/.vs/Events/v17/Solution.VC.db
  13. TEMPAT SAMPAH
      Events/.vs/Events/v17/ipch/AutoPCH/1912a3ee4daed08f/EVENTS.ipch
  14. TEMPAT SAMPAH
      Events/.vs/Events/v17/ipch/AutoPCH/22009ec1d3149a69/DEMO.ipch
  15. TEMPAT SAMPAH
      Events/.vs/Events/v17/ipch/AutoPCH/41923f09ff99ec33/TMP94CA.TMP.ipch
  16. TEMPAT SAMPAH
      Events/.vs/Events/v17/ipch/AutoPCH/6cc06046bbdf55cf/TMPF179.TMP.ipch
  17. 31 0
      Events/Events.sln
  18. 86 0
      Events/Events/Demo.cpp
  19. 36 0
      Events/Events/Demo.h
  20. 58 0
      Events/Events/Dispatcher.h
  21. 32 0
      Events/Events/Event.h
  22. 140 0
      Events/Events/Events.vcxproj
  23. 33 0
      Events/Events/Events.vcxproj.filters
  24. 4 0
      Events/Events/Events.vcxproj.user
  25. TEMPAT SAMPAH
      Events/Events/x64/Debug/Demo.obj
  26. 11 0
      Events/Events/x64/Debug/Events.exe.recipe
  27. TEMPAT SAMPAH
      Events/Events/x64/Debug/Events.ilk
  28. 31 0
      Events/Events/x64/Debug/Events.log
  29. TEMPAT SAMPAH
      Events/Events/x64/Debug/Events.tlog/CL.command.1.tlog
  30. TEMPAT SAMPAH
      Events/Events/x64/Debug/Events.tlog/CL.read.1.tlog
  31. TEMPAT SAMPAH
      Events/Events/x64/Debug/Events.tlog/CL.write.1.tlog
  32. 1 0
      Events/Events/x64/Debug/Events.tlog/Cl.items.tlog
  33. 2 0
      Events/Events/x64/Debug/Events.tlog/Events.lastbuildstate
  34. TEMPAT SAMPAH
      Events/Events/x64/Debug/Events.tlog/link.command.1.tlog
  35. TEMPAT SAMPAH
      Events/Events/x64/Debug/Events.tlog/link.read.1.tlog
  36. 2 0
      Events/Events/x64/Debug/Events.tlog/link.secondary.1.tlog
  37. TEMPAT SAMPAH
      Events/Events/x64/Debug/Events.tlog/link.write.1.tlog
  38. TEMPAT SAMPAH
      Events/Events/x64/Debug/vc143.idb
  39. TEMPAT SAMPAH
      Events/Events/x64/Debug/vc143.pdb
  40. 1 0
      Events/Events/x64/Debug/vcpkg.applocal.log
  41. TEMPAT SAMPAH
      Events/x64/Debug/Events.exe
  42. TEMPAT SAMPAH
      Events/x64/Debug/Events.pdb
  43. TEMPAT SAMPAH
      generic Observer Pattern/.vs/generic Observer Pattern/CopilotIndices/17.13.444.19527/CodeChunks.db
  44. TEMPAT SAMPAH
      generic Observer Pattern/.vs/generic Observer Pattern/CopilotIndices/17.13.444.19527/SemanticSymbols.db
  45. TEMPAT SAMPAH
      generic Observer Pattern/.vs/generic Observer Pattern/FileContentIndex/618f3771-509b-4ed0-9d9c-e5edc5a960be.vsidx
  46. TEMPAT SAMPAH
      generic Observer Pattern/.vs/generic Observer Pattern/FileContentIndex/d0566a92-8c19-4571-931d-9951a376914a.vsidx
  47. TEMPAT SAMPAH
      generic Observer Pattern/.vs/generic Observer Pattern/v17/.suo
  48. TEMPAT SAMPAH
      generic Observer Pattern/.vs/generic Observer Pattern/v17/Browse.VC.db
  49. 62 0
      generic Observer Pattern/.vs/generic Observer Pattern/v17/DocumentLayout.backup.json
  50. 62 0
      generic Observer Pattern/.vs/generic Observer Pattern/v17/DocumentLayout.json
  51. TEMPAT SAMPAH
      generic Observer Pattern/.vs/generic Observer Pattern/v17/ipch/AutoPCH/405c7bfcf2efe3ff/GENERIC OBSERVER PATTERN.ipch
  52. 31 0
      generic Observer Pattern/generic Observer Pattern.sln
  53. 62 0
      generic Observer Pattern/generic Observer Pattern/dispatcher.h
  54. 77 0
      generic Observer Pattern/generic Observer Pattern/generic Observer Pattern.cpp
  55. 138 0
      generic Observer Pattern/generic Observer Pattern/generic Observer Pattern.vcxproj
  56. 27 0
      generic Observer Pattern/generic Observer Pattern/generic Observer Pattern.vcxproj.filters
  57. 4 0
      generic Observer Pattern/generic Observer Pattern/generic Observer Pattern.vcxproj.user
  58. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/CL.command.1.tlog
  59. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/CL.read.1.tlog
  60. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/CL.write.1.tlog
  61. 1 0
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/Cl.items.tlog
  62. 2 0
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/generic Observer Pattern.lastbuildstate
  63. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/link.command.1.tlog
  64. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/link.read.1.tlog
  65. 2 0
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/link.secondary.1.tlog
  66. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/link.write.1.tlog
  67. 11 0
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic Observer Pattern.exe.recipe
  68. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic Observer Pattern.ilk
  69. 42 0
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic Observer Pattern.log
  70. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/generic Observer Pattern.obj
  71. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/vc143.idb
  72. TEMPAT SAMPAH
      generic Observer Pattern/generic Observer Pattern/x64/Debug/vc143.pdb
  73. 1 0
      generic Observer Pattern/generic Observer Pattern/x64/Debug/vcpkg.applocal.log
  74. TEMPAT SAMPAH
      generic Observer Pattern/x64/Debug/generic Observer Pattern.exe
  75. TEMPAT SAMPAH
      generic Observer Pattern/x64/Debug/generic Observer Pattern.pdb
  76. TEMPAT SAMPAH
      libmupdf/.vs/libmupdf/CopilotIndices/17.13.444.19527/CodeChunks.db
  77. TEMPAT SAMPAH
      libmupdf/.vs/libmupdf/CopilotIndices/17.13.444.19527/SemanticSymbols.db
  78. TEMPAT SAMPAH
      libmupdf/.vs/libmupdf/FileContentIndex/9da563e9-61d7-41c9-85af-7d6a7e97ddb0.vsidx
  79. TEMPAT SAMPAH
      libmupdf/.vs/libmupdf/FileContentIndex/dd3d3012-0058-4cdb-a86b-09011755996f.vsidx
  80. TEMPAT SAMPAH
      libmupdf/.vs/libmupdf/v17/.suo
  81. TEMPAT SAMPAH
      libmupdf/.vs/libmupdf/v17/Browse.VC.db
  82. 12 0
      libmupdf/.vs/libmupdf/v17/DocumentLayout.json
  83. TEMPAT SAMPAH
      libmupdf/.vs/libmupdf/v17/ipch/5cc268dd7b4d75be.ipch
  84. TEMPAT SAMPAH
      libmupdf/.vs/libmupdf/v17/ipch/AutoPCH/fa29229894a68fc9/DLLMAIN.ipch
  85. 31 0
      libmupdf/libmupdf.sln
  86. 19 0
      libmupdf/libmupdf/dllmain.cpp
  87. 5 0
      libmupdf/libmupdf/framework.h
  88. 157 0
      libmupdf/libmupdf/libmupdf.vcxproj
  89. 33 0
      libmupdf/libmupdf/libmupdf.vcxproj.filters
  90. 4 0
      libmupdf/libmupdf/libmupdf.vcxproj.user
  91. 5 0
      libmupdf/libmupdf/pch.cpp
  92. 13 0
      libmupdf/libmupdf/pch.h

TEMPAT SAMPAH
Events/.vs/Events/CopilotIndices/17.13.444.19527/CodeChunks.db


TEMPAT SAMPAH
Events/.vs/Events/CopilotIndices/17.13.444.19527/SemanticSymbols.db


TEMPAT SAMPAH
Events/.vs/Events/FileContentIndex/50a8e39d-1d2c-45aa-a182-fcea4192c3d2.vsidx


TEMPAT SAMPAH
Events/.vs/Events/FileContentIndex/574d5dc8-d1d1-4036-abfa-a90c7d87d4ab.vsidx


TEMPAT SAMPAH
Events/.vs/Events/FileContentIndex/5ac4b26e-eb55-4304-b130-41e8b39667cf.vsidx


TEMPAT SAMPAH
Events/.vs/Events/FileContentIndex/8756c4ee-de5f-4af4-9231-6748d5d50364.vsidx


TEMPAT SAMPAH
Events/.vs/Events/FileContentIndex/9b0b7ca6-f052-4378-be7b-8c1db5bbaf82.vsidx


TEMPAT SAMPAH
Events/.vs/Events/v17/.suo


TEMPAT SAMPAH
Events/.vs/Events/v17/Browse.VC.db


+ 96 - 0
Events/.vs/Events/v17/DocumentLayout.backup.json

@@ -0,0 +1,96 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\Users\\wruser\\source\\repos\\Events\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|solutionrelative:Events\\Demo.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|solutionrelative:Events\\Demo.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|C:\\Users\\wruser\\source\\repos\\Events\\Events\\Event.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|solutionrelative:Events\\Event.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|C:\\Users\\wruser\\source\\repos\\Events\\Events\\Dispatcher.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|solutionrelative:Events\\Dispatcher.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    }
+  ],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 3,
+          "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "Demo.h",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.h",
+              "RelativeDocumentMoniker": "Events\\Demo.h",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.h",
+              "RelativeToolTip": "Events\\Demo.h",
+              "ViewState": "AgIAAAwAAAAAAAAAAAAAABgAAAACAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+              "WhenOpened": "2025-04-25T15:48:55.811Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "Demo.cpp",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.cpp",
+              "RelativeDocumentMoniker": "Events\\Demo.cpp",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.cpp",
+              "RelativeToolTip": "Events\\Demo.cpp",
+              "ViewState": "AgIAADwAAAAAAAAAAAAgwE8AAAAWAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+              "WhenOpened": "2025-04-25T15:45:29.351Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "Dispatcher.h",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Dispatcher.h",
+              "RelativeDocumentMoniker": "Events\\Dispatcher.h",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Dispatcher.h",
+              "RelativeToolTip": "Events\\Dispatcher.h",
+              "ViewState": "AgIAABgAAAAAAAAAAAAAACgAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+              "WhenOpened": "2025-04-25T15:47:19.016Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "Event.h",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Event.h",
+              "RelativeDocumentMoniker": "Events\\Event.h",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Event.h",
+              "RelativeToolTip": "Events\\Event.h",
+              "ViewState": "AgIAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+              "WhenOpened": "2025-04-25T15:46:06.525Z",
+              "EditorCaption": ""
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}

+ 93 - 0
Events/.vs/Events/v17/DocumentLayout.json

@@ -0,0 +1,93 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\Users\\wruser\\source\\repos\\Events\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|solutionrelative:Events\\Demo.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|solutionrelative:Events\\Demo.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|C:\\Users\\wruser\\source\\repos\\Events\\Events\\Event.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|solutionrelative:Events\\Event.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|C:\\Users\\wruser\\source\\repos\\Events\\Events\\Dispatcher.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{10112F47-AD4D-47D9-96DF-67EB08B54873}|Events\\Events.vcxproj|solutionrelative:Events\\Dispatcher.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    }
+  ],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 3,
+          "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "Demo.h",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.h",
+              "RelativeDocumentMoniker": "Events\\Demo.h",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.h",
+              "RelativeToolTip": "Events\\Demo.h",
+              "ViewState": "AgIAAAwAAAAAAAAAAAAAABgAAAACAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+              "WhenOpened": "2025-04-25T15:48:55.811Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "Demo.cpp",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.cpp",
+              "RelativeDocumentMoniker": "Events\\Demo.cpp",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Demo.cpp",
+              "RelativeToolTip": "Events\\Demo.cpp",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAABAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+              "WhenOpened": "2025-04-25T15:45:29.351Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "Dispatcher.h",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Dispatcher.h",
+              "RelativeDocumentMoniker": "Events\\Dispatcher.h",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Dispatcher.h",
+              "RelativeToolTip": "Events\\Dispatcher.h",
+              "ViewState": "AgIAABgAAAAAAAAAAAAAACgAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+              "WhenOpened": "2025-04-25T15:47:19.016Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "Event.h",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Event.h",
+              "RelativeDocumentMoniker": "Events\\Event.h",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\Events\\Events\\Event.h",
+              "RelativeToolTip": "Events\\Event.h",
+              "ViewState": "AgIAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+              "WhenOpened": "2025-04-25T15:46:06.525Z"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}

TEMPAT SAMPAH
Events/.vs/Events/v17/Solution.VC.db


TEMPAT SAMPAH
Events/.vs/Events/v17/ipch/AutoPCH/1912a3ee4daed08f/EVENTS.ipch


TEMPAT SAMPAH
Events/.vs/Events/v17/ipch/AutoPCH/22009ec1d3149a69/DEMO.ipch


TEMPAT SAMPAH
Events/.vs/Events/v17/ipch/AutoPCH/41923f09ff99ec33/TMP94CA.TMP.ipch


TEMPAT SAMPAH
Events/.vs/Events/v17/ipch/AutoPCH/6cc06046bbdf55cf/TMPF179.TMP.ipch


+ 31 - 0
Events/Events.sln

@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35931.197 d17.13
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Events", "Events\Events.vcxproj", "{10112F47-AD4D-47D9-96DF-67EB08B54873}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{10112F47-AD4D-47D9-96DF-67EB08B54873}.Debug|x64.ActiveCfg = Debug|x64
+		{10112F47-AD4D-47D9-96DF-67EB08B54873}.Debug|x64.Build.0 = Debug|x64
+		{10112F47-AD4D-47D9-96DF-67EB08B54873}.Debug|x86.ActiveCfg = Debug|Win32
+		{10112F47-AD4D-47D9-96DF-67EB08B54873}.Debug|x86.Build.0 = Debug|Win32
+		{10112F47-AD4D-47D9-96DF-67EB08B54873}.Release|x64.ActiveCfg = Release|x64
+		{10112F47-AD4D-47D9-96DF-67EB08B54873}.Release|x64.Build.0 = Release|x64
+		{10112F47-AD4D-47D9-96DF-67EB08B54873}.Release|x86.ActiveCfg = Release|Win32
+		{10112F47-AD4D-47D9-96DF-67EB08B54873}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {0EBA7F61-0D13-47EC-9945-DC0C272EA008}
+	EndGlobalSection
+EndGlobal

+ 86 - 0
Events/Events/Demo.cpp

@@ -0,0 +1,86 @@
+// Events.cpp : Diese Datei enthält die Funktion "main". Hier beginnt und endet die Ausführung des Programms.
+// https://github.com/Pseudomanifold/Events/tree/master
+// https://bastian.rieck.me/blog/2015/event_system_cxx11/
+
+#include <iostream>
+#include "Demo.h"
+#include "Dispatcher.h"
+
+#include <functional>
+#include <iostream>
+
+void onEvent1(const Event<EventType1>& event) {
+    if (event.type() == EventType1::TEST_EVENT) {
+        std::cout << "Function Event TYPE: EventType1::TEST_EVENT " << event.getName() << std::endl;
+    }
+}
+
+void onEvent2(const Event<EventType2>& event) {
+    if (event.type() == EventType2::TEST_EVENT) {
+        std::cout << "Function Event TYPE: EventType2::TEST_EVENT " << event.getName() << std::endl;
+    }
+}
+
+class ClassObserver1; // Forward declaration
+extern void ClearEvent(ClassObserver1& _p, const Event<EventType1>& event); // Forward declaration
+
+class ClassObserver1
+{
+public:
+    void handle(const Event<EventType1>& e)
+    {
+        if (e.type() == EventType1::TEST_EVENT)
+        {
+            // This demonstrates how to obtain the underlying event type in case a
+            // slot is set up to handle multiple events of different types.
+            // const DemoEvent& demoEvent = static_cast<const DemoEvent&>( e );
+            // std::cout << __PRETTY_FUNCTION__ << ": " << demoEvent.type() << std::endl;
+            std::cout << "Class Event EventType1::TEST_EVENT " << e.getName() << std::endl;
+        }
+		if (e.type() == EventType1::TEST_EVENT_CLEAR)
+		{
+			std::cout << "Class Event EventType1::TEST_EVENT2 " << e.getName() << std::endl;
+			ClearEvent(*this, e);   
+		}
+    }
+};
+
+void ClearEvent(ClassObserver1 & _p, const Event<EventType1>& event) {
+    if (event.type() == EventType1::TEST_EVENT_CLEAR) {
+        std::cout << "Function Event TYPE: EventType2::TEST_EVENT " << event.getName() << std::endl;
+    }
+}
+
+int main(int, char**)
+{
+    ClassObserver1 classObserver1;
+
+    Dispatcher<EventType1> dispatcher1;
+    Dispatcher<EventType2> dispatcher2;
+    Dispatcher<EventType1> dispatcher3;
+
+    dispatcher1.subscribe(EventType1::TEST_EVENT, onEvent1);
+    dispatcher1.subscribe(EventType1::TEST_EVENT, std::bind(&ClassObserver1::handle, classObserver1, std::placeholders::_1));
+    dispatcher2.subscribe(EventType2::TEST_EVENT, onEvent2);
+    dispatcher3.subscribe(EventType1::TEST_EVENT2, onEvent1);
+	dispatcher3.subscribe(EventType1::TEST_EVENT_CLEAR, std::bind(&ClassObserver1::handle, classObserver1, std::placeholders::_1));
+
+
+    std::cout << "#\n"
+        << "# Posting a demo event. This should trigger two observers\n"
+        << "#\n";
+    DemoEvent e;
+    dispatcher1.post(e);
+
+    std::cout << "#\n"
+        << "# Posting a demo event. This should trigger one observer\n"
+        << "#\n";
+    DemoEventAlt e2;
+    dispatcher2.post(e2);
+
+    std::cout << "#\n"
+        << "# Posting a demo event. This should trigger no observers\n"
+        << "#\n";
+    dispatcher3.post(e);
+    return 0;
+}

+ 36 - 0
Events/Events/Demo.h

@@ -0,0 +1,36 @@
+#pragma once
+#ifndef DEMO_EVENT_HH__
+#define DEMO_EVENT_HH__
+
+#include "Event.h"
+
+enum class EventType1 {
+	TEST_EVENT,
+	TEST_EVENT2,
+	TEST_EVENT3,
+	TEST_EVENT_CLEAR
+};
+
+enum class EventType2 {
+	TEST_EVENT,
+	TEST_EVENT2,
+	TEST_EVENT3
+};
+
+class DemoEvent : public Event<EventType1>
+{
+public:
+	DemoEvent() : Event<EventType1>(EventType1::TEST_EVENT, "DemoEvent") {};
+	virtual ~DemoEvent() = default;
+};
+
+class DemoEventAlt : public Event<EventType2>
+{
+private:
+public:
+	DemoEventAlt() : Event<EventType2>(EventType2::TEST_EVENT, "DemoEventAlt") {};
+	virtual ~DemoEventAlt() = default;
+};
+
+
+#endif

+ 58 - 0
Events/Events/Dispatcher.h

@@ -0,0 +1,58 @@
+#pragma once
+#ifndef DISPATCHER_HH__
+#define DISPATCHER_HH__
+
+#include "Event.h"
+
+#include <functional>
+#include <map>
+#include <vector>
+#include <algorithm>
+
+// A forward declaration is sufficient here as the dispatcher does not store
+// connections themselves.
+// class Connection;
+
+/**
+  @class Dispatcher
+  @brief Dispatches events to observers
+
+  The dispatcher is the central class for event management. It offers clients
+  the opportunity to use post() to submit a given event. Said event is then
+  passed on to all observers that are listening to it. The dispatcher also
+  handles new observers via subscribe() and permits the removal of observers
+  via disconnect().
+*/
+
+template<typename T>
+class Dispatcher {
+private:
+    using SlotType = std::function<void(const Event<T>&)>;
+    std::map<T, std::vector<SlotType>> _observers;
+public:
+
+    /**
+     * Subscribe an observer
+     * @param type  The type of the function to listen to.
+     * @param funct function of the observer
+     */
+    void subscribe(T type, const SlotType& funct) {
+        _observers[type].push_back(funct);
+    };
+
+    /**
+     * Send the event to all the observers
+     * @param event event to post
+     */
+    void post(Event<T>& event) {
+        if (_observers.find(event.type()) == _observers.end())
+            return;
+
+        //Loop though all observers. If the event is not handled yet we continue to process it.
+        for (auto&& observer : _observers.at(event.type())) {
+            if (!event.isHandled()) observer(event);
+        }
+    };
+private:
+};
+#endif

+ 32 - 0
Events/Events/Event.h

@@ -0,0 +1,32 @@
+#pragma once
+#ifndef EVENT_HH__
+#define EVENT_HH__
+
+#include <string>
+/**
+  @class Event
+  @brief Base class for all events
+
+  This class provides the interface that needs to be implemented by an event.
+  Each dependent class is required to implement type() to uniquely identify
+  events. As a convenience, each class should have a static descriptor so that
+  clients may refer to it without having to create an instance.
+
+  Unfortunately, I have no idea how to enforce the existence of this attribute.
+*/
+template <typename T>
+class Event {
+protected:
+	T _type;
+	std::string _name;
+	bool _handled = false;
+public:
+	Event() = default;
+	Event(T type, const std::string& name = "") : _type(type), _name(name) {};
+	inline const T type() const { return _type; };
+	inline const std::string& getName() const { return _name; };
+	virtual bool isHandled() { return _handled; };
+private:
+};
+
+#endif

+ 140 - 0
Events/Events/Events.vcxproj

@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>17.0</VCProjectVersion>
+    <Keyword>Win32Proj</Keyword>
+    <ProjectGuid>{10112f47-ad4d-47d9-96df-67eb08b54873}</ProjectGuid>
+    <RootNamespace>Events</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="Demo.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Demo.h" />
+    <ClInclude Include="Dispatcher.h" />
+    <ClInclude Include="Event.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 33 - 0
Events/Events/Events.vcxproj.filters

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Quelldateien">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Headerdateien">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+    </Filter>
+    <Filter Include="Ressourcendateien">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="Demo.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Event.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+    <ClInclude Include="Dispatcher.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+    <ClInclude Include="Demo.h">
+      <Filter>Quelldateien</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>

+ 4 - 0
Events/Events/Events.vcxproj.user

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup />
+</Project>

TEMPAT SAMPAH
Events/Events/x64/Debug/Demo.obj


+ 11 - 0
Events/Events/x64/Debug/Events.exe.recipe

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project>
+  <ProjectOutputs>
+    <ProjectOutput>
+      <FullPath>C:\Users\wruser\source\repos\Events\x64\Debug\Events.exe</FullPath>
+    </ProjectOutput>
+  </ProjectOutputs>
+  <ContentFiles />
+  <SatelliteDlls />
+  <NonRecipeFileRefs />
+</Project>

TEMPAT SAMPAH
Events/Events/x64/Debug/Events.ilk


+ 31 - 0
Events/Events/x64/Debug/Events.log

@@ -0,0 +1,31 @@
+Der Buildvorgang wurde am 26.04.2025 20:17:39 gestartet.
+Die Ausführlichkeit der Protokollierung ist auf "Normal" festgelegt.     1>Projekt "C:\Users\wruser\source\repos\Events\Events\Events.vcxproj" auf Knoten "2", Build Ziel(e).
+     1>PrepareForBuild:
+         Die strukturierte Ausgabe ist aktiviert. Die Formatierung der Compilerdiagnose spiegelt die Fehlerhierarchie wider. Weitere Informationen finden Sie unter https://aka.ms/cpp/structured-output.
+       InitializeBuildStatus:
+         Aktualisieren des Timestamps von "x64\Debug\Events.tlog\unsuccessfulbuild".
+       VcpkgTripletSelection:
+         Using triplet "x64-windows" from "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\"
+         Using normalized configuration "Debug"
+       ClCompile:
+         D:\Programme\VS2022\VC\Tools\MSVC\14.43.34808\bin\HostX64\x64\CL.exe /c /I"C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\include" /ZI /JMC /nologo /W3 /WX- /diagnostics:column /sdl /Od /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /permissive- /Fo"x64\Debug\\" /Fd"x64\Debug\vc143.pdb" /external:W3 /Gd /TP /FC /errorReport:prompt Demo.cpp
+         Demo.cpp
+       Link:
+         D:\Programme\VS2022\VC\Tools\MSVC\14.43.34808\bin\HostX64\x64\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\wruser\source\repos\Events\x64\Debug\Events.exe" /INCREMENTAL /ILK:"x64\Debug\Events.ilk" /NOLOGO /LIBPATH:"C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\lib" /LIBPATH:"C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\lib\manual-link" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\lib\*.lib" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\Users\wruser\source\repos\Events\x64\Debug\Events.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\wruser\source\repos\Events\x64\Debug\Events.lib" /MACHINE:X64 x64\Debug\Demo.obj
+         Events.vcxproj -> C:\Users\wruser\source\repos\Events\x64\Debug\Events.exe
+       AppLocalFromInstalled:
+         pwsh.exe -ExecutionPolicy Bypass -noprofile -File "C:\Users\wruser\source\repos\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Users\wruser\source\repos\Events\x64\Debug\Events.exe" "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\bin" "x64\Debug\Events.tlog\Events.write.1u.tlog" "x64\Debug\vcpkg.applocal.log"
+         Der Befehl "pwsh.exe" ist entweder falsch geschrieben oder
+         konnte nicht gefunden werden.
+         Der Befehl "pwsh.exe -ExecutionPolicy Bypass -noprofile -File "C:\Users\wruser\source\repos\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Users\wruser\source\repos\Events\x64\Debug\Events.exe" "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\bin" "x64\Debug\Events.tlog\Events.write.1u.tlog" "x64\Debug\vcpkg.applocal.log"" wurde mit dem Code 9009 beendet.
+         "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -noprofile -File "C:\Users\wruser\source\repos\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Users\wruser\source\repos\Events\x64\Debug\Events.exe" "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\bin" "x64\Debug\Events.tlog\Events.write.1u.tlog" "x64\Debug\vcpkg.applocal.log"
+       FinalizeBuildStatus:
+         Die Datei "x64\Debug\Events.tlog\unsuccessfulbuild" wird gelöscht.
+         Aktualisieren des Timestamps von "x64\Debug\Events.tlog\Events.lastbuildstate".
+     1>Die Erstellung von Projekt "C:\Users\wruser\source\repos\Events\Events\Events.vcxproj" ist abgeschlossen (Build Ziel(e)).
+
+Der Buildvorgang wurde erfolgreich ausgeführt.
+    0 Warnung(en)
+    0 Fehler
+
+Verstrichene Zeit 00:00:03.37

TEMPAT SAMPAH
Events/Events/x64/Debug/Events.tlog/CL.command.1.tlog


TEMPAT SAMPAH
Events/Events/x64/Debug/Events.tlog/CL.read.1.tlog


TEMPAT SAMPAH
Events/Events/x64/Debug/Events.tlog/CL.write.1.tlog


+ 1 - 0
Events/Events/x64/Debug/Events.tlog/Cl.items.tlog

@@ -0,0 +1 @@
+C:\Users\wruser\source\repos\Events\Events\Demo.cpp;C:\Users\wruser\source\repos\Events\Events\x64\Debug\Demo.obj

+ 2 - 0
Events/Events/x64/Debug/Events.tlog/Events.lastbuildstate

@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.43.34808:TargetPlatformVersion=10.0.22621.0:VcpkgTriplet=x64-windows:
+Debug|x64|C:\Users\wruser\source\repos\Events\|

TEMPAT SAMPAH
Events/Events/x64/Debug/Events.tlog/link.command.1.tlog


TEMPAT SAMPAH
Events/Events/x64/Debug/Events.tlog/link.read.1.tlog


+ 2 - 0
Events/Events/x64/Debug/Events.tlog/link.secondary.1.tlog

@@ -0,0 +1,2 @@
+^C:\USERS\WRUSER\SOURCE\REPOS\EVENTS\EVENTS\X64\DEBUG\DEMO.OBJ
+C:\Users\wruser\source\repos\Events\Events\x64\Debug\Events.ilk

TEMPAT SAMPAH
Events/Events/x64/Debug/Events.tlog/link.write.1.tlog


TEMPAT SAMPAH
Events/Events/x64/Debug/vc143.idb


TEMPAT SAMPAH
Events/Events/x64/Debug/vc143.pdb


+ 1 - 0
Events/Events/x64/Debug/vcpkg.applocal.log

@@ -0,0 +1 @@
+

TEMPAT SAMPAH
Events/x64/Debug/Events.exe


TEMPAT SAMPAH
Events/x64/Debug/Events.pdb


TEMPAT SAMPAH
generic Observer Pattern/.vs/generic Observer Pattern/CopilotIndices/17.13.444.19527/CodeChunks.db


TEMPAT SAMPAH
generic Observer Pattern/.vs/generic Observer Pattern/CopilotIndices/17.13.444.19527/SemanticSymbols.db


TEMPAT SAMPAH
generic Observer Pattern/.vs/generic Observer Pattern/FileContentIndex/618f3771-509b-4ed0-9d9c-e5edc5a960be.vsidx


TEMPAT SAMPAH
generic Observer Pattern/.vs/generic Observer Pattern/FileContentIndex/d0566a92-8c19-4571-931d-9951a376914a.vsidx


TEMPAT SAMPAH
generic Observer Pattern/.vs/generic Observer Pattern/v17/.suo


TEMPAT SAMPAH
generic Observer Pattern/.vs/generic Observer Pattern/v17/Browse.VC.db


+ 62 - 0
generic Observer Pattern/.vs/generic Observer Pattern/v17/DocumentLayout.backup.json

@@ -0,0 +1,62 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{45DC1D23-BCF2-42F3-B053-CE3802239861}|generic Observer Pattern\\generic Observer Pattern.vcxproj|C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\generic Observer Pattern.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{45DC1D23-BCF2-42F3-B053-CE3802239861}|generic Observer Pattern\\generic Observer Pattern.vcxproj|solutionrelative:generic Observer Pattern\\generic Observer Pattern.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{45DC1D23-BCF2-42F3-B053-CE3802239861}|generic Observer Pattern\\generic Observer Pattern.vcxproj|C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\dispatcher.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{45DC1D23-BCF2-42F3-B053-CE3802239861}|generic Observer Pattern\\generic Observer Pattern.vcxproj|solutionrelative:generic Observer Pattern\\dispatcher.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    }
+  ],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 3,
+          "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "dispatcher.h",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\dispatcher.h",
+              "RelativeDocumentMoniker": "generic Observer Pattern\\dispatcher.h",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\dispatcher.h",
+              "RelativeToolTip": "generic Observer Pattern\\dispatcher.h",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAD0AAAAGAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+              "WhenOpened": "2025-04-26T18:57:44.528Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "generic Observer Pattern.cpp",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\generic Observer Pattern.cpp",
+              "RelativeDocumentMoniker": "generic Observer Pattern\\generic Observer Pattern.cpp",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\generic Observer Pattern.cpp*",
+              "RelativeToolTip": "generic Observer Pattern\\generic Observer Pattern.cpp*",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+              "WhenOpened": "2025-04-26T18:56:56.741Z",
+              "EditorCaption": ""
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}

+ 62 - 0
generic Observer Pattern/.vs/generic Observer Pattern/v17/DocumentLayout.json

@@ -0,0 +1,62 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{45DC1D23-BCF2-42F3-B053-CE3802239861}|generic Observer Pattern\\generic Observer Pattern.vcxproj|C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\generic Observer Pattern.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{45DC1D23-BCF2-42F3-B053-CE3802239861}|generic Observer Pattern\\generic Observer Pattern.vcxproj|solutionrelative:generic Observer Pattern\\generic Observer Pattern.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{45DC1D23-BCF2-42F3-B053-CE3802239861}|generic Observer Pattern\\generic Observer Pattern.vcxproj|C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\dispatcher.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
+      "RelativeMoniker": "D:0:0:{45DC1D23-BCF2-42F3-B053-CE3802239861}|generic Observer Pattern\\generic Observer Pattern.vcxproj|solutionrelative:generic Observer Pattern\\dispatcher.h||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
+    }
+  ],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 3,
+          "Children": [
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}"
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{40ea2e6b-2121-4bb8-a43e-c83c04b51041}"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "dispatcher.h",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\dispatcher.h",
+              "RelativeDocumentMoniker": "generic Observer Pattern\\dispatcher.h",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\dispatcher.h",
+              "RelativeToolTip": "generic Observer Pattern\\dispatcher.h",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAD0AAAAGAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
+              "WhenOpened": "2025-04-26T18:57:44.528Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "generic Observer Pattern.cpp",
+              "DocumentMoniker": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\generic Observer Pattern.cpp",
+              "RelativeDocumentMoniker": "generic Observer Pattern\\generic Observer Pattern.cpp",
+              "ToolTip": "C:\\Users\\wruser\\source\\repos\\generic Observer Pattern\\generic Observer Pattern\\generic Observer Pattern.cpp",
+              "RelativeToolTip": "generic Observer Pattern\\generic Observer Pattern.cpp",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
+              "WhenOpened": "2025-04-26T18:56:56.741Z",
+              "EditorCaption": ""
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}

TEMPAT SAMPAH
generic Observer Pattern/.vs/generic Observer Pattern/v17/ipch/AutoPCH/405c7bfcf2efe3ff/GENERIC OBSERVER PATTERN.ipch


+ 31 - 0
generic Observer Pattern/generic Observer Pattern.sln

@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35931.197 d17.13
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generic Observer Pattern", "generic Observer Pattern\generic Observer Pattern.vcxproj", "{45DC1D23-BCF2-42F3-B053-CE3802239861}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{45DC1D23-BCF2-42F3-B053-CE3802239861}.Debug|x64.ActiveCfg = Debug|x64
+		{45DC1D23-BCF2-42F3-B053-CE3802239861}.Debug|x64.Build.0 = Debug|x64
+		{45DC1D23-BCF2-42F3-B053-CE3802239861}.Debug|x86.ActiveCfg = Debug|Win32
+		{45DC1D23-BCF2-42F3-B053-CE3802239861}.Debug|x86.Build.0 = Debug|Win32
+		{45DC1D23-BCF2-42F3-B053-CE3802239861}.Release|x64.ActiveCfg = Release|x64
+		{45DC1D23-BCF2-42F3-B053-CE3802239861}.Release|x64.Build.0 = Release|x64
+		{45DC1D23-BCF2-42F3-B053-CE3802239861}.Release|x86.ActiveCfg = Release|Win32
+		{45DC1D23-BCF2-42F3-B053-CE3802239861}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {18A9C2CC-6622-4940-AAE6-A4AC23F3C77A}
+	EndGlobalSection
+EndGlobal

+ 62 - 0
generic Observer Pattern/generic Observer Pattern/dispatcher.h

@@ -0,0 +1,62 @@
+#pragma once
+
+#ifndef __DISPATCHER_H
+#define __DISPATCHER_H
+
+#include <functional>
+#include <list>
+
+template <typename... Args>
+class Dispatcher
+{
+public:
+    typedef std::function<void(Args...)> CBType;
+
+    class CBID
+    {
+    public:
+        CBID() : valid(false) {}
+    private:
+        friend class Dispatcher<Args...>;
+        CBID(typename std::list<CBType>::iterator i)
+            : iter(i), valid(true)
+        {
+        }
+
+        typename std::list<CBType>::iterator iter;
+        bool valid;
+    };
+
+    // register to be notified
+    CBID addCB(CBType cb)
+    {
+        if (cb)
+        {
+            cbs.push_back(cb);
+            return CBID(--cbs.end());
+        }
+        return CBID();
+    }
+
+    // unregister to be notified
+    void delCB(CBID& id)
+    {
+        if (id.valid)
+        {
+            cbs.erase(id.iter);
+        }
+    }
+
+    void broadcast(Args... args)
+    {
+        for (auto& cb : cbs)
+        {
+            cb(args...);
+        }
+    }
+
+private:
+    std::list<CBType> cbs;
+};
+
+#endif

+ 77 - 0
generic Observer Pattern/generic Observer Pattern/generic Observer Pattern.cpp

@@ -0,0 +1,77 @@
+#include <iostream>
+#include <string>
+#include "dispatcher.h" // the implementation is here
+
+// https://www.theimpossiblecode.com/blog/c11-generic-observer-pattern/
+//
+// https://gist.github.com/sagi-z/d044c7daeaa9e8ef8e8ceae17d472bdb
+// https://gist.github.com/sagi-z/f8b734a2240ce203ba5b2977e54b4414
+
+using namespace std;
+
+// a dummy enum for this example
+enum EventEnum { EVENT1, EVENT2, EVENT3 };
+
+int main(int argc, char* argv[])
+{
+    // 2 example dispatchers, any number of arguments and types can be used:
+    Dispatcher<string, EventEnum> d1;// here any cb(string, EventEnum) can register
+    Dispatcher<int, long, double> d2;// here any cb(int, long, double) can register
+
+    // From the "most simple" lambda usage example ...
+
+    auto cbid1 = d1.addCB([](string str, EventEnum evt) {
+        cout << "CB1:" << str << " got event " << evt << endl;
+        });
+    auto cbid2 = d1.addCB([](string str, EventEnum evt) {
+        cout << "CB2:" << str << " got event " << evt << endl;
+        });
+
+    d1.broadcast("** Dispatching to 2 is **", EVENT1);
+    d1.broadcast("**       E a s y       **", EVENT2);
+
+    d1.delCB(cbid1); // remove the first callback
+    d1.broadcast("** Dispatching to 1 is **", EVENT1);
+    d1.broadcast("**       E a s y       **", EVENT2);
+
+    d1.delCB(cbid2); // remove the second callback
+    d1.broadcast("** No one will see this **", EVENT3);
+
+    // ... to the "most complex" **live** instance (not copy) usage example:
+
+    class MyClassWithMethod {
+    public:
+        void registerCB(Dispatcher<int, long, double>& dispatcher) {
+            using namespace std::placeholders;
+            dispatcher.addCB(std::bind(&MyClassWithMethod::listener, this, _1, _2, _3));
+        }
+    private:
+        // any method with the right signature can be used:
+        void listener(int i, long l, double d) {
+            cout << "listener() for " << this << ", got: " <<
+                i << ", " << l << ", " << d << endl;
+        }
+    };
+
+    MyClassWithMethod instance1;
+    MyClassWithMethod instance2;
+    instance1.registerCB(d2);
+    instance2.registerCB(d2);
+    d2.broadcast(65000, 12345678910, 3.14159265);
+    d2.broadcast(56000, 1987654321, 14159265.3);
+
+
+    return 0;
+}
+/* Example output:
+CB1:** Dispatching to 2 is ** got event 0
+CB2:** Dispatching to 2 is ** got event 0
+CB1:**       E a s y       ** got event 1
+CB2:**       E a s y       ** got event 1
+CB2:** Dispatching to 1 is ** got event 0
+CB2:**       E a s y       ** got event 1
+listener() for 0x7ffcb1bfe6fe, got: 65000, 12345678910, 3.14159
+listener() for 0x7ffcb1bfe6ff, got: 65000, 12345678910, 3.14159
+listener() for 0x7ffcb1bfe6fe, got: 56000, 1987654321, 1.41593e+07
+listener() for 0x7ffcb1bfe6ff, got: 56000, 1987654321, 1.41593e+07
+ */

+ 138 - 0
generic Observer Pattern/generic Observer Pattern/generic Observer Pattern.vcxproj

@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>17.0</VCProjectVersion>
+    <Keyword>Win32Proj</Keyword>
+    <ProjectGuid>{45dc1d23-bcf2-42f3-b053-ce3802239861}</ProjectGuid>
+    <RootNamespace>genericObserverPattern</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="generic Observer Pattern.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="dispatcher.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 27 - 0
generic Observer Pattern/generic Observer Pattern/generic Observer Pattern.vcxproj.filters

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Quelldateien">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Headerdateien">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+    </Filter>
+    <Filter Include="Ressourcendateien">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="generic Observer Pattern.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="dispatcher.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>

+ 4 - 0
generic Observer Pattern/generic Observer Pattern/generic Observer Pattern.vcxproj.user

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup />
+</Project>

TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/CL.command.1.tlog


TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/CL.read.1.tlog


TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/CL.write.1.tlog


+ 1 - 0
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/Cl.items.tlog

@@ -0,0 +1 @@
+C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\generic Observer Pattern.cpp;C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\x64\Debug\generic Observer Pattern.obj

+ 2 - 0
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/generic Observer Pattern.lastbuildstate

@@ -0,0 +1,2 @@
+PlatformToolSet=v143:VCToolArchitecture=Native64Bit:VCToolsVersion=14.43.34808:TargetPlatformVersion=10.0.22621.0:VcpkgTriplet=x64-windows:
+Debug|x64|C:\Users\wruser\source\repos\generic Observer Pattern\|

TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/link.command.1.tlog


TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/link.read.1.tlog


+ 2 - 0
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/link.secondary.1.tlog

@@ -0,0 +1,2 @@
+^C:\USERS\WRUSER\SOURCE\REPOS\GENERIC OBSERVER PATTERN\GENERIC OBSERVER PATTERN\X64\DEBUG\GENERIC OBSERVER PATTERN.OBJ
+C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\x64\Debug\generic Observer Pattern.ilk

TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic .45dc1d23.tlog/link.write.1.tlog


+ 11 - 0
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic Observer Pattern.exe.recipe

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project>
+  <ProjectOutputs>
+    <ProjectOutput>
+      <FullPath>C:\Users\wruser\source\repos\generic Observer Pattern\x64\Debug\generic Observer Pattern.exe</FullPath>
+    </ProjectOutput>
+  </ProjectOutputs>
+  <ContentFiles />
+  <SatelliteDlls />
+  <NonRecipeFileRefs />
+</Project>

TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic Observer Pattern.ilk


+ 42 - 0
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic Observer Pattern.log

@@ -0,0 +1,42 @@
+Der Buildvorgang wurde am 26.04.2025 21:01:16 gestartet.
+Die Ausführlichkeit der Protokollierung ist auf "Normal" festgelegt.     1>Projekt "C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\generic Observer Pattern.vcxproj" auf Knoten "2", Build Ziel(e).
+     1>PrepareForBuild:
+         Die strukturierte Ausgabe ist aktiviert. Die Formatierung der Compilerdiagnose spiegelt die Fehlerhierarchie wider. Weitere Informationen finden Sie unter https://aka.ms/cpp/structured-output.
+         Das Verzeichnis "C:\Users\wruser\source\repos\generic Observer Pattern\x64\Debug\" wird erstellt.
+         Das Verzeichnis "x64\Debug\generic .45dc1d23.tlog\" wird erstellt.
+       InitializeBuildStatus:
+         "x64\Debug\generic .45dc1d23.tlog\unsuccessfulbuild" wird erstellt, da "AlwaysCreate" angegeben wurde.
+         Aktualisieren des Timestamps von "x64\Debug\generic .45dc1d23.tlog\unsuccessfulbuild".
+       VcpkgTripletSelection:
+         Using triplet "x64-windows" from "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\"
+         Using normalized configuration "Debug"
+       ClCompile:
+         D:\Programme\VS2022\VC\Tools\MSVC\14.43.34808\bin\HostX64\x64\CL.exe /c /I"C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\include" /ZI /JMC /nologo /W3 /WX- /diagnostics:column /sdl /Od /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /permissive- /Fo"x64\Debug\\" /Fd"x64\Debug\vc143.pdb" /external:W3 /Gd /TP /FC /errorReport:prompt "generic Observer Pattern.cpp"
+         generic Observer Pattern.cpp
+     1>C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\generic Observer Pattern.cpp(60,25): warning C4305: "Argument": Verkürzung von "__int64" in "long"
+     1>C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\generic Observer Pattern.cpp(60,25): warning C4309: "Argument": Verkürzung eines konstanten Wertes
+       Link:
+         D:\Programme\VS2022\VC\Tools\MSVC\14.43.34808\bin\HostX64\x64\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\wruser\source\repos\generic Observer Pattern\x64\Debug\generic Observer Pattern.exe" /INCREMENTAL /ILK:"x64\Debug\generic Observer Pattern.ilk" /NOLOGO /LIBPATH:"C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\lib" /LIBPATH:"C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\lib\manual-link" kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\lib\*.lib" /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\Users\wruser\source\repos\generic Observer Pattern\x64\Debug\generic Observer Pattern.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\wruser\source\repos\generic Observer Pattern\x64\Debug\generic Observer Pattern.lib" /MACHINE:X64 "x64\Debug\generic Observer Pattern.obj"
+         generic Observer Pattern.vcxproj -> C:\Users\wruser\source\repos\generic Observer Pattern\x64\Debug\generic Observer Pattern.exe
+       AppLocalFromInstalled:
+         pwsh.exe -ExecutionPolicy Bypass -noprofile -File "C:\Users\wruser\source\repos\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Users\wruser\source\repos\generic Observer Pattern\x64\Debug\generic Observer Pattern.exe" "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\bin" "x64\Debug\generic .45dc1d23.tlog\generic Observer Pattern.write.1u.tlog" "x64\Debug\vcpkg.applocal.log"
+         Der Befehl "pwsh.exe" ist entweder falsch geschrieben oder
+         konnte nicht gefunden werden.
+         Der Befehl "pwsh.exe -ExecutionPolicy Bypass -noprofile -File "C:\Users\wruser\source\repos\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Users\wruser\source\repos\generic Observer Pattern\x64\Debug\generic Observer Pattern.exe" "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\bin" "x64\Debug\generic .45dc1d23.tlog\generic Observer Pattern.write.1u.tlog" "x64\Debug\vcpkg.applocal.log"" wurde mit dem Code 9009 beendet.
+         "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -noprofile -File "C:\Users\wruser\source\repos\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Users\wruser\source\repos\generic Observer Pattern\x64\Debug\generic Observer Pattern.exe" "C:\Users\wruser\source\repos\vcpkg\installed\x64-windows\debug\bin" "x64\Debug\generic .45dc1d23.tlog\generic Observer Pattern.write.1u.tlog" "x64\Debug\vcpkg.applocal.log"
+       FinalizeBuildStatus:
+         Die Datei "x64\Debug\generic .45dc1d23.tlog\unsuccessfulbuild" wird gelöscht.
+         Aktualisieren des Timestamps von "x64\Debug\generic .45dc1d23.tlog\generic Observer Pattern.lastbuildstate".
+     1>Die Erstellung von Projekt "C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\generic Observer Pattern.vcxproj" ist abgeschlossen (Build Ziel(e)).
+
+Der Buildvorgang wurde erfolgreich ausgeführt.
+
+       "C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\generic Observer Pattern.vcxproj" (Build Ziel) (1) ->
+       (ClCompile Ziel) -> 
+         C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\generic Observer Pattern.cpp(60,25): warning C4305: "Argument": Verkürzung von "__int64" in "long"
+         C:\Users\wruser\source\repos\generic Observer Pattern\generic Observer Pattern\generic Observer Pattern.cpp(60,25): warning C4309: "Argument": Verkürzung eines konstanten Wertes
+
+    2 Warnung(en)
+    0 Fehler
+
+Verstrichene Zeit 00:00:03.32

TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/generic Observer Pattern.obj


TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/vc143.idb


TEMPAT SAMPAH
generic Observer Pattern/generic Observer Pattern/x64/Debug/vc143.pdb


+ 1 - 0
generic Observer Pattern/generic Observer Pattern/x64/Debug/vcpkg.applocal.log

@@ -0,0 +1 @@
+

TEMPAT SAMPAH
generic Observer Pattern/x64/Debug/generic Observer Pattern.exe


TEMPAT SAMPAH
generic Observer Pattern/x64/Debug/generic Observer Pattern.pdb


TEMPAT SAMPAH
libmupdf/.vs/libmupdf/CopilotIndices/17.13.444.19527/CodeChunks.db


TEMPAT SAMPAH
libmupdf/.vs/libmupdf/CopilotIndices/17.13.444.19527/SemanticSymbols.db


TEMPAT SAMPAH
libmupdf/.vs/libmupdf/FileContentIndex/9da563e9-61d7-41c9-85af-7d6a7e97ddb0.vsidx


TEMPAT SAMPAH
libmupdf/.vs/libmupdf/FileContentIndex/dd3d3012-0058-4cdb-a86b-09011755996f.vsidx


TEMPAT SAMPAH
libmupdf/.vs/libmupdf/v17/.suo


TEMPAT SAMPAH
libmupdf/.vs/libmupdf/v17/Browse.VC.db


+ 12 - 0
libmupdf/.vs/libmupdf/v17/DocumentLayout.json

@@ -0,0 +1,12 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "C:\\Users\\wruser\\source\\repos\\libmupdf\\",
+  "Documents": [],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": []
+    }
+  ]
+}

TEMPAT SAMPAH
libmupdf/.vs/libmupdf/v17/ipch/5cc268dd7b4d75be.ipch


TEMPAT SAMPAH
libmupdf/.vs/libmupdf/v17/ipch/AutoPCH/fa29229894a68fc9/DLLMAIN.ipch


+ 31 - 0
libmupdf/libmupdf.sln

@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.13.35931.197 d17.13
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmupdf", "libmupdf\libmupdf.vcxproj", "{2C508365-3E28-481D-986A-CF48C3152E0C}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{2C508365-3E28-481D-986A-CF48C3152E0C}.Debug|x64.ActiveCfg = Debug|x64
+		{2C508365-3E28-481D-986A-CF48C3152E0C}.Debug|x64.Build.0 = Debug|x64
+		{2C508365-3E28-481D-986A-CF48C3152E0C}.Debug|x86.ActiveCfg = Debug|Win32
+		{2C508365-3E28-481D-986A-CF48C3152E0C}.Debug|x86.Build.0 = Debug|Win32
+		{2C508365-3E28-481D-986A-CF48C3152E0C}.Release|x64.ActiveCfg = Release|x64
+		{2C508365-3E28-481D-986A-CF48C3152E0C}.Release|x64.Build.0 = Release|x64
+		{2C508365-3E28-481D-986A-CF48C3152E0C}.Release|x86.ActiveCfg = Release|Win32
+		{2C508365-3E28-481D-986A-CF48C3152E0C}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {353FBD6C-2823-49DA-BE5C-DD7428D3ED2D}
+	EndGlobalSection
+EndGlobal

+ 19 - 0
libmupdf/libmupdf/dllmain.cpp

@@ -0,0 +1,19 @@
+// dllmain.cpp : Definiert den Einstiegspunkt für die DLL-Anwendung.
+#include "pch.h"
+
+BOOL APIENTRY DllMain( HMODULE hModule,
+                       DWORD  ul_reason_for_call,
+                       LPVOID lpReserved
+                     )
+{
+    switch (ul_reason_for_call)
+    {
+    case DLL_PROCESS_ATTACH:
+    case DLL_THREAD_ATTACH:
+    case DLL_THREAD_DETACH:
+    case DLL_PROCESS_DETACH:
+        break;
+    }
+    return TRUE;
+}
+

+ 5 - 0
libmupdf/libmupdf/framework.h

@@ -0,0 +1,5 @@
+#pragma once
+
+#define WIN32_LEAN_AND_MEAN             // Selten verwendete Komponenten aus Windows-Headern ausschließen
+// Windows-Headerdateien
+#include <windows.h>

+ 157 - 0
libmupdf/libmupdf/libmupdf.vcxproj

@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>17.0</VCProjectVersion>
+    <Keyword>Win32Proj</Keyword>
+    <ProjectGuid>{2c508365-3e28-481d-986a-cf48c3152e0c}</ProjectGuid>
+    <RootNamespace>libmupdf</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v143</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;_DEBUG;LIBMUPDF_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableUAC>false</EnableUAC>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;NDEBUG;LIBMUPDF_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableUAC>false</EnableUAC>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>_DEBUG;LIBMUPDF_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableUAC>false</EnableUAC>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>NDEBUG;LIBMUPDF_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableUAC>false</EnableUAC>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="framework.h" />
+    <ClInclude Include="pch.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="dllmain.cpp" />
+    <ClCompile Include="pch.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
+    </ClCompile>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 33 - 0
libmupdf/libmupdf/libmupdf.vcxproj.filters

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Quelldateien">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Headerdateien">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
+    </Filter>
+    <Filter Include="Ressourcendateien">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="framework.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+    <ClInclude Include="pch.h">
+      <Filter>Headerdateien</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="dllmain.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+    <ClCompile Include="pch.cpp">
+      <Filter>Quelldateien</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>

+ 4 - 0
libmupdf/libmupdf/libmupdf.vcxproj.user

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup />
+</Project>

+ 5 - 0
libmupdf/libmupdf/pch.cpp

@@ -0,0 +1,5 @@
+// pch.cpp: Quelldatei, die dem vorkompilierten Header entspricht
+
+#include "pch.h"
+
+// Bei der Verwendung vorkompilierter Header ist diese Quelldatei für eine erfolgreiche Kompilierung erforderlich.

+ 13 - 0
libmupdf/libmupdf/pch.h

@@ -0,0 +1,13 @@
+// pch.h: Dies ist eine vorkompilierte Headerdatei.
+// Die unten aufgeführten Dateien werden nur einmal kompiliert, um die Buildleistung für zukünftige Builds zu verbessern.
+// Dies wirkt sich auch auf die IntelliSense-Leistung aus, Codevervollständigung und viele Features zum Durchsuchen von Code eingeschlossen.
+// Die hier aufgeführten Dateien werden jedoch ALLE neu kompiliert, wenn mindestens eine davon zwischen den Builds aktualisiert wird.
+// Fügen Sie hier keine Dateien hinzu, die häufig aktualisiert werden sollen, da sich so der Leistungsvorteil ins Gegenteil verkehrt.
+
+#ifndef PCH_H
+#define PCH_H
+
+// Fügen Sie hier Header hinzu, die vorkompiliert werden sollen.
+#include "framework.h"
+
+#endif //PCH_H