From e6b4c12ad2a9513e24fb788eb759beaad9851b1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Thu, 12 Mar 2015 08:57:47 +0100 Subject: [PATCH 1/3] updated project files to include JSONRowFormatter --- Data/Data_CE_vs90.vcproj | 4 + Data/Data_VS90.vcproj | 4 + Data/Data_WEC2013_vs110.vcxproj | 2 + Data/Data_WEC2013_vs110.vcxproj.filters | 24 ++- Data/Data_WEC2013_vs120.vcxproj | 2 + Data/Data_WEC2013_vs120.vcxproj.filters | 24 ++- Data/Data_vs100.vcxproj | 2 + Data/Data_vs100.vcxproj.filters | 24 ++- Data/Data_vs110.vcxproj | 2 + Data/Data_vs110.vcxproj.filters | 24 ++- Data/Data_vs120.vcxproj | 2 + Data/Data_vs120.vcxproj.filters | 24 ++- Data/Data_x64_vs100.vcxproj | 2 + Data/Data_x64_vs100.vcxproj.filters | 24 ++- Data/Data_x64_vs110.vcxproj | 2 + Data/Data_x64_vs110.vcxproj.filters | 24 ++- Data/Data_x64_vs120.vcxproj | 218 ++++++++++++------------ Data/Data_x64_vs120.vcxproj.filters | 30 ++-- Data/Data_x64_vs90.vcproj | 4 + 19 files changed, 255 insertions(+), 187 deletions(-) diff --git a/Data/Data_CE_vs90.vcproj b/Data/Data_CE_vs90.vcproj index 6f95a0f62..013c73460 100644 --- a/Data/Data_CE_vs90.vcproj +++ b/Data/Data_CE_vs90.vcproj @@ -480,6 +480,8 @@ RelativePath=".\include\Poco\Data\DynamicLOB.h"/> + + + + + @@ -319,6 +320,7 @@ + diff --git a/Data/Data_WEC2013_vs110.vcxproj.filters b/Data/Data_WEC2013_vs110.vcxproj.filters index 701ae9002..9d2e7d45a 100644 --- a/Data/Data_WEC2013_vs110.vcxproj.filters +++ b/Data/Data_WEC2013_vs110.vcxproj.filters @@ -2,31 +2,31 @@ - {a1bfd020-b311-4242-bf10-601154718a3d} + {afbe04f4-c69d-4aa6-babe-74358ec23a11} - {219ad8dc-b490-4530-b8d3-01498270a1f3} + {d1251bfb-7216-448b-9c0d-80f2903cede1} - {8f0dc745-8909-4d14-b51d-133b293998b8} + {1f439df2-f931-4c1f-82ae-ea11d441d15f} - {c894d0e2-44ef-45ae-a2b3-828dba29fc2b} + {3f8e9d0d-856d-419d-89fb-16904fa29e75} - {0a33e09f-93ef-494f-9aab-ff2e0d61f617} + {b57716e0-d030-4913-900e-bd96775f8104} - {70be8877-fa7b-4bfa-b4dc-9245311f2cd3} + {8025d438-78ca-430a-8d22-78167c783e60} - {f8ce7a66-6687-4431-a6c0-e3fcd7e37145} + {3308a18c-dd06-4ff2-a3eb-3b6b4c951692} - {a6c983ab-082d-4dee-8661-8a6ec57c5f5d} + {542b344c-2aa2-48f8-be67-6fd1a163c65c} - {af269556-481e-4d92-86da-492a9976484b} + {bcf7a9da-332c-4e6b-81f1-37a0e116d440} @@ -93,6 +93,9 @@ DataCore\Header Files + + DataCore\Header Files + DataCore\Header Files @@ -212,6 +215,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files diff --git a/Data/Data_WEC2013_vs120.vcxproj b/Data/Data_WEC2013_vs120.vcxproj index 3401e469e..df148d87b 100644 --- a/Data/Data_WEC2013_vs120.vcxproj +++ b/Data/Data_WEC2013_vs120.vcxproj @@ -279,6 +279,7 @@ + @@ -320,6 +321,7 @@ + diff --git a/Data/Data_WEC2013_vs120.vcxproj.filters b/Data/Data_WEC2013_vs120.vcxproj.filters index 222e7f4b5..ae275887a 100644 --- a/Data/Data_WEC2013_vs120.vcxproj.filters +++ b/Data/Data_WEC2013_vs120.vcxproj.filters @@ -2,31 +2,31 @@ - {ef49fad2-cda8-4d2c-8be0-79383202ce43} + {354b9974-53b2-41e9-9c2e-3ac1cd8eb8d3} - {c5bf437b-2a1d-4335-ba14-f2806861ce95} + {5d9f9bc9-be52-4e03-ac89-2b65dc319a89} - {27e0e145-fe5d-4b55-b4ad-0ceda6253245} + {af5514fc-85fd-4cc6-8ec1-dea22f75254b} - {5732012a-0f7f-40e5-89ef-fe90ad6a842a} + {4322305c-46ae-47e4-8f31-dd781863da06} - {339bca35-4827-47b9-a730-767fd55f05ec} + {f9f2d600-a830-4875-93b3-95ca11c98c84} - {081f9fc3-c730-44c5-ba4f-db0f74447172} + {e62f6698-aec4-4277-b174-a01c7787d74e} - {707f0c5e-2133-4efb-8884-c193759cf2f9} + {45b79b11-4c90-47b9-a699-ea7ae733f83c} - {d628db45-980c-490e-989d-d2141d1a8107} + {6cc994a0-ce43-4776-8e76-bf115b162172} - {0d886a65-e7cd-4d7e-854b-d22a62ff3f25} + {5178771d-b672-4247-877d-9c244c4208f5} @@ -93,6 +93,9 @@ DataCore\Header Files + + DataCore\Header Files + DataCore\Header Files @@ -212,6 +215,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files diff --git a/Data/Data_vs100.vcxproj b/Data/Data_vs100.vcxproj index e67acdbd4..805630373 100644 --- a/Data/Data_vs100.vcxproj +++ b/Data/Data_vs100.vcxproj @@ -296,6 +296,7 @@ + @@ -337,6 +338,7 @@ + diff --git a/Data/Data_vs100.vcxproj.filters b/Data/Data_vs100.vcxproj.filters index 8b64ed557..bcb962a0a 100644 --- a/Data/Data_vs100.vcxproj.filters +++ b/Data/Data_vs100.vcxproj.filters @@ -2,31 +2,31 @@ - {5918ab93-9893-493f-a411-c7b145fc2328} + {be69cd09-bdcb-445d-a786-c3281f3e2b95} - {afc1af1b-5e1a-4d44-9b65-d04434356f5b} + {f5c6a3bb-d7c4-4b8c-a73b-0665c3fd7d95} - {6a64db96-c0d0-4392-8cc3-8baf35394fc0} + {549457d8-8db4-4b04-a0a7-d519a9d02022} - {6e405ccb-1a2f-488f-825d-a3269dabcef9} + {8ab4fb6b-1a8e-447d-b040-83de61742648} - {6c9ae24c-8211-40e9-8513-4ff4d662e6f4} + {157043c4-81e2-4ddd-8072-34fba98fc592} - {2f018bc7-8439-49b7-be8d-2bd3221b0d6d} + {108ed356-cffa-474c-a869-1fc054ed7055} - {fab04917-1e46-4698-8eeb-3210bb17cda1} + {9548a9ac-16cb-476a-a421-2b1c10c5a81b} - {0bdf6b6d-5205-4f00-b963-9c3c896f89d2} + {7d225c11-32c6-4dd5-aff5-a8a77dfa9a35} - {cdfe6934-8d4f-46d6-9762-ce1d1b12f611} + {f353e68d-4b10-4cb2-b16d-74daff8b79aa} @@ -93,6 +93,9 @@ DataCore\Header Files + + DataCore\Header Files + DataCore\Header Files @@ -212,6 +215,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files diff --git a/Data/Data_vs110.vcxproj b/Data/Data_vs110.vcxproj index 98b003daf..bbf448f49 100644 --- a/Data/Data_vs110.vcxproj +++ b/Data/Data_vs110.vcxproj @@ -297,6 +297,7 @@ + @@ -338,6 +339,7 @@ + diff --git a/Data/Data_vs110.vcxproj.filters b/Data/Data_vs110.vcxproj.filters index c94712f3d..bf80b2fd5 100644 --- a/Data/Data_vs110.vcxproj.filters +++ b/Data/Data_vs110.vcxproj.filters @@ -2,31 +2,31 @@ - {696ecd7f-5f09-4c8c-9a58-733e6021e695} + {13941e34-926f-4790-884e-388490d4b01d} - {13807a52-e8db-4852-8eb5-b458527852c8} + {baa01be7-9bc1-41f8-865d-a0b8d9d4754e} - {601e0697-8260-4a00-814d-15a035349da2} + {d2bb2ec8-5b51-47ee-a1c1-9fd5787ae588} - {d4da890b-c018-4f9c-82b8-c36bea74d83e} + {655c43a6-82ba-4280-b46f-bc2634a70243} - {5db081b6-7732-4a68-bff2-80b87784e755} + {b9d07856-a3ab-4ba0-a427-c374dfbd1f86} - {70f878fb-2681-4b2f-a87b-f08b9acbd53c} + {f1ef23ca-f09d-4446-8e62-fcde07be98fa} - {99174893-8694-4a46-80ac-64e1547e08cf} + {b5220b8e-2aca-4343-b230-ee448396856f} - {bd56b395-1374-437f-9c60-d3a15288f203} + {e008522f-0e91-4fbc-a41e-05cfec564b95} - {160c1b3f-f769-4190-a650-5637ef9eec75} + {849d4fbc-dd98-48ce-81f7-a0e5557e5010} @@ -93,6 +93,9 @@ DataCore\Header Files + + DataCore\Header Files + DataCore\Header Files @@ -212,6 +215,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files diff --git a/Data/Data_vs120.vcxproj b/Data/Data_vs120.vcxproj index 324366774..c79317c55 100644 --- a/Data/Data_vs120.vcxproj +++ b/Data/Data_vs120.vcxproj @@ -298,6 +298,7 @@ + @@ -339,6 +340,7 @@ + diff --git a/Data/Data_vs120.vcxproj.filters b/Data/Data_vs120.vcxproj.filters index 08c98f3ca..642db3d96 100644 --- a/Data/Data_vs120.vcxproj.filters +++ b/Data/Data_vs120.vcxproj.filters @@ -2,31 +2,31 @@ - {bb91bb23-0897-45a3-a0e8-49d84123eca4} + {96284adb-5513-4ea1-bda9-6d1567822723} - {624cfcec-7066-4d21-8a33-46b10ad831df} + {71da1e92-4917-4c21-9731-27f533096f39} - {e1dff34a-6159-4bf3-9ff7-401e9ec9ff94} + {ddf362d8-b56a-4045-9224-158eaa585af4} - {99b21241-b3e8-46c6-94d0-174e6ddfcedc} + {b503747f-b110-4760-907d-9f0f5fde8e41} - {547bccb5-00fb-48b9-bfd9-5ac93fcc330c} + {28633c43-cd5e-4b47-8bc4-0e1d4efc63fd} - {e9513500-c482-4b0c-bc25-8ea90f8dc131} + {40eef1ac-a741-44b8-be26-944ccdcc9591} - {ffb1d991-9bb0-4e00-99a4-0dbb756871b9} + {7254f23a-e098-4d53-bda4-04d2e9c03ae9} - {2e0ee7c7-c273-4275-8686-9591c9b361c8} + {f5ad66d8-f2ff-4155-aeaa-0c47ad2649d0} - {e6ff4f08-b153-4a24-8405-cada44797ef9} + {a5858e96-5d61-432d-bb65-0bb9769b2c3b} @@ -93,6 +93,9 @@ DataCore\Header Files + + DataCore\Header Files + DataCore\Header Files @@ -212,6 +215,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files diff --git a/Data/Data_x64_vs100.vcxproj b/Data/Data_x64_vs100.vcxproj index 064fa464d..a83712d68 100644 --- a/Data/Data_x64_vs100.vcxproj +++ b/Data/Data_x64_vs100.vcxproj @@ -294,6 +294,7 @@ + @@ -335,6 +336,7 @@ + diff --git a/Data/Data_x64_vs100.vcxproj.filters b/Data/Data_x64_vs100.vcxproj.filters index f48761fff..4ab347b89 100644 --- a/Data/Data_x64_vs100.vcxproj.filters +++ b/Data/Data_x64_vs100.vcxproj.filters @@ -2,31 +2,31 @@ - {c2acec6a-18df-46e7-b572-452480bd7942} + {67cf767e-e296-4d25-a81b-b5aa6f29f7ce} - {bc232914-3042-447f-b824-bd9602b2fd00} + {5f440626-1ced-451c-9bdb-fa3e6de7db42} - {2c4df99a-3763-427d-9eec-6a7d0e57f450} + {cda06993-f08e-4a0d-9554-ccf479c58704} - {b1647c25-70ef-48bc-88d5-e53bfd3d673c} + {add1dd78-0f4d-46d3-ac01-47319cace033} - {0f187ba9-b6c7-4dbe-a2f6-d42be87040b2} + {32bc0385-c3cd-4525-993d-d22c4486b13f} - {6d9652a8-2888-45aa-a91e-2a53440ddd0b} + {7cc87a93-7176-4b51-a874-0f20463589f7} - {3bdd1bc7-e1f1-4f9c-81c6-aad1989d50c4} + {e9bf763a-a2c4-4e09-898c-07102909a8df} - {d81f2976-7408-452a-968c-296622fb86e1} + {e87ae4ea-35d1-4620-8f2f-3480104d264b} - {a84ef3a7-b988-497a-85fa-07d7d26f3067} + {4841b0ad-623c-4314-9a63-cd5594730000} @@ -93,6 +93,9 @@ DataCore\Header Files + + DataCore\Header Files + DataCore\Header Files @@ -212,6 +215,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files diff --git a/Data/Data_x64_vs110.vcxproj b/Data/Data_x64_vs110.vcxproj index 7de8200a2..05b68f4a5 100644 --- a/Data/Data_x64_vs110.vcxproj +++ b/Data/Data_x64_vs110.vcxproj @@ -302,6 +302,7 @@ + @@ -343,6 +344,7 @@ + diff --git a/Data/Data_x64_vs110.vcxproj.filters b/Data/Data_x64_vs110.vcxproj.filters index 11f9922ef..1d0968ed0 100644 --- a/Data/Data_x64_vs110.vcxproj.filters +++ b/Data/Data_x64_vs110.vcxproj.filters @@ -2,31 +2,31 @@ - {2bbb5307-7be4-489f-ba3b-0bce01e56cb2} + {351b94c7-ddf8-4fd4-a1f0-f2fc3ef80835} - {830d615a-da6c-4986-b551-dad4aba3dc80} + {a796da8d-189c-4fdf-9568-ba65cc01a492} - {127b108e-aa9d-4679-9476-959738c302bd} + {84de6d34-c63b-4832-8aa7-6ba626785fb9} - {0b3f4bbd-9f2b-4c61-a597-6b6a51805bd1} + {a447b486-38e9-41fb-8a95-e9c933e7615d} - {5b868b59-99ef-4c82-a9b7-bdb604ff4d74} + {121ec0b1-6e84-498c-b42f-b66f46848b9b} - {28141386-bfb6-43df-b230-543640f2bf32} + {658a8428-7533-40f3-a3df-3ecac65bb2b8} - {65bfb828-6ca9-4663-a85c-5e8211d1d8f1} + {5a30c806-beb9-429b-b435-23c284e2bd9e} - {a094b222-f606-4d9f-a447-bc80a4f37a2a} + {2fd504a3-8dd8-4236-8277-f7370c99a6ab} - {ae4df5ff-4dc0-416d-95a2-94d1954639a1} + {ef9093b3-204f-4590-afd8-8e1f360ad64f} @@ -93,6 +93,9 @@ DataCore\Header Files + + DataCore\Header Files + DataCore\Header Files @@ -212,6 +215,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files diff --git a/Data/Data_x64_vs120.vcxproj b/Data/Data_x64_vs120.vcxproj index 9a95537a3..75d41a25b 100644 --- a/Data/Data_x64_vs120.vcxproj +++ b/Data/Data_x64_vs120.vcxproj @@ -1,4 +1,4 @@ - + @@ -32,7 +32,7 @@ Data Win32Proj - + StaticLibrary MultiByte @@ -63,27 +63,27 @@ MultiByte v120 - - + + - + - + - + - + - + - + - + <_ProjectFileVersion>12.0.30501.0 PocoData64d @@ -132,7 +132,7 @@ true true true - + Level3 ProgramDatabase Default @@ -164,9 +164,9 @@ true true true - + Level3 - + Default /bigobj %(AdditionalOptions) @@ -195,7 +195,7 @@ true true true - + ..\lib64\PocoDatamtd.pdb Level3 ProgramDatabase @@ -221,9 +221,9 @@ true true true - + Level3 - + Default /bigobj %(AdditionalOptions) @@ -244,7 +244,7 @@ true true true - + ..\lib64\PocoDatamdd.pdb Level3 ProgramDatabase @@ -270,9 +270,9 @@ true true true - + Level3 - + Default /bigobj %(AdditionalOptions) @@ -281,95 +281,95 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - \ No newline at end of file + + + diff --git a/Data/Data_x64_vs120.vcxproj.filters b/Data/Data_x64_vs120.vcxproj.filters index 23f6e42ad..4e03cefab 100644 --- a/Data/Data_x64_vs120.vcxproj.filters +++ b/Data/Data_x64_vs120.vcxproj.filters @@ -2,31 +2,31 @@ - {3db17930-0098-4c7c-9ffc-308de3b05863} + {03057cf0-0a45-4f05-b3f1-49efe69676b6} - {e6d79dca-ec63-42f2-a2aa-29d02a26bb3f} + {3ab9e6b0-fe0f-459c-8a11-e5abab3ba5e4} - {412f4b4c-ccc2-4147-bcbc-db67fcd992df} + {f65032c5-960b-4de0-a633-4e866549ede3} - {ec157c71-4d2c-4052-97ce-5d2f1de40122} + {4ad5318f-4fd1-40cc-8ab7-b793d43f7235} - {ff5a6a54-6d9b-4fc8-8350-c1f54c789295} + {958bdce1-8813-4dc8-9b20-f66ac7489960} - {db703cd2-b565-4058-8b67-5ae8606163c1} + {5439178f-11b9-4417-bbe3-55840d9e4676} - {1a9e7bc5-1910-4cf2-a681-9965d08553d6} + {e7d1d571-4a86-4db3-8689-5c16fce4db5c} - {208ef637-6927-40ca-9e0c-2b60bbc81129} + {8632f9be-aff4-4f36-8d38-9a0d7ea6aa3f} - {734e9191-0bec-46c5-b757-20a997803fec} + {433c5e7f-11d4-415f-8640-1e2d0b75af57} @@ -93,6 +93,9 @@ DataCore\Header Files + + DataCore\Header Files + DataCore\Header Files @@ -177,9 +180,6 @@ Logging\Header Files - - DataCore\Header Files - @@ -215,6 +215,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files @@ -287,8 +290,5 @@ Logging\Source Files - - DataCore\Source Files - \ No newline at end of file diff --git a/Data/Data_x64_vs90.vcproj b/Data/Data_x64_vs90.vcproj index 87ca5e1a3..4e4a254d6 100644 --- a/Data/Data_x64_vs90.vcproj +++ b/Data/Data_x64_vs90.vcproj @@ -439,6 +439,8 @@ RelativePath=".\include\Poco\Data\DynamicLOB.h"/> + + Date: Fri, 13 Mar 2015 13:51:51 +0100 Subject: [PATCH 2/3] Windows specific: added registerServiceDeviceNotification() and handleDeviceEvent() to handle SERVICE_CONTROL_DEVICEEVENT events --- Util/include/Poco/Util/ServerApplication.h | 12 ++++++++- Util/src/ServerApplication.cpp | 30 +++++++++++++++++++--- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/Util/include/Poco/Util/ServerApplication.h b/Util/include/Poco/Util/ServerApplication.h index bcb23fa55..4b68b0717 100644 --- a/Util/include/Poco/Util/ServerApplication.h +++ b/Util/include/Poco/Util/ServerApplication.h @@ -168,6 +168,16 @@ protected: void defineOptions(OptionSet& options); #endif +#if defined(POCO_OS_FAMILY_WINDOWS) + static HDEVNOTIFY registerServiceDeviceNotification(LPVOID filter, DWORD flags); + /// Registers the ServerApplication to receive SERVICE_CONTROL_DEVICEEVENT + /// events. + + virtual DWORD handleDeviceEvent(DWORD event_type, LPVOID event_data); + /// Handles the SERVICE_CONTROL_DEVICEEVENT event. The default + /// implementation does nothing and returns ERROR_CALL_NOT_IMPLEMENTED. +#endif // if defined(POCO_OS_FAMILY_WINDOWS) + private: #if defined(POCO_VXWORKS) static Poco::Event _terminate; @@ -188,7 +198,7 @@ private: SRV_UNREGISTER }; static BOOL __stdcall ConsoleCtrlHandler(DWORD ctrlType); - static void __stdcall ServiceControlHandler(DWORD control); + static DWORD __stdcall ServiceControlHandler(DWORD control, DWORD event_type, LPVOID event_data, LPVOID context); #if defined(POCO_WIN32_UTF8) && !defined(POCO_NO_WSTRING) static void __stdcall ServiceMain(DWORD argc, LPWSTR* argv); #else diff --git a/Util/src/ServerApplication.cpp b/Util/src/ServerApplication.cpp index caee6eecd..cc443463f 100644 --- a/Util/src/ServerApplication.cpp +++ b/Util/src/ServerApplication.cpp @@ -132,8 +132,23 @@ BOOL ServerApplication::ConsoleCtrlHandler(DWORD ctrlType) } -void ServerApplication::ServiceControlHandler(DWORD control) +HDEVNOTIFY ServerApplication::registerServiceDeviceNotification(LPVOID filter, DWORD flags) { + return RegisterDeviceNotification(_serviceStatusHandle, filter, flags); +} + + +DWORD ServerApplication::handleDeviceEvent(DWORD /*event_type*/, LPVOID /*event_data*/) +{ + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +DWORD ServerApplication::ServiceControlHandler(DWORD control, DWORD event_type, LPVOID event_data, LPVOID context) +{ + DWORD result = NO_ERROR; + auto instance = reinterpret_cast(context); + switch (control) { case SERVICE_CONTROL_STOP: @@ -142,9 +157,16 @@ void ServerApplication::ServiceControlHandler(DWORD control) _serviceStatus.dwCurrentState = SERVICE_STOP_PENDING; break; case SERVICE_CONTROL_INTERROGATE: - break; + break; + case SERVICE_CONTROL_DEVICEEVENT: + if (instance) + { + result = instance->handleDeviceEvent(event_type, event_data); + } + break; } SetServiceStatus(_serviceStatusHandle, &_serviceStatus); + return result; } @@ -159,9 +181,9 @@ void ServerApplication::ServiceMain(DWORD argc, LPTSTR* argv) app.config().setBool("application.runAsService", true); #if defined(POCO_WIN32_UTF8) && !defined(POCO_NO_WSTRING) - _serviceStatusHandle = RegisterServiceCtrlHandlerW(L"", ServiceControlHandler); + _serviceStatusHandle = RegisterServiceCtrlHandlerExW(L"", ServiceControlHandler, &app); #else - _serviceStatusHandle = RegisterServiceCtrlHandlerA("", ServiceControlHandler); + _serviceStatusHandle = RegisterServiceCtrlHandlerExA("", ServiceControlHandler, &app); #endif if (!_serviceStatusHandle) throw SystemException("cannot register service control handler"); From 39b6c79e46e60530291f4f455883a4caec11944f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 14 Mar 2015 10:30:22 +0100 Subject: [PATCH 3/3] fixed for VS2008 and WinCE --- Util/include/Poco/Util/ServerApplication.h | 6 +++--- Util/src/ServerApplication.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Util/include/Poco/Util/ServerApplication.h b/Util/include/Poco/Util/ServerApplication.h index 4b68b0717..f6bcdb261 100644 --- a/Util/include/Poco/Util/ServerApplication.h +++ b/Util/include/Poco/Util/ServerApplication.h @@ -168,15 +168,15 @@ protected: void defineOptions(OptionSet& options); #endif -#if defined(POCO_OS_FAMILY_WINDOWS) +#if defined(POCO_OS_FAMILY_WINDOWS) && !defined(_WIN32_WCE) static HDEVNOTIFY registerServiceDeviceNotification(LPVOID filter, DWORD flags); /// Registers the ServerApplication to receive SERVICE_CONTROL_DEVICEEVENT - /// events. + /// events via handleDeviceEvent(). virtual DWORD handleDeviceEvent(DWORD event_type, LPVOID event_data); /// Handles the SERVICE_CONTROL_DEVICEEVENT event. The default /// implementation does nothing and returns ERROR_CALL_NOT_IMPLEMENTED. -#endif // if defined(POCO_OS_FAMILY_WINDOWS) +#endif private: #if defined(POCO_VXWORKS) diff --git a/Util/src/ServerApplication.cpp b/Util/src/ServerApplication.cpp index cc443463f..8a2fa2ebe 100644 --- a/Util/src/ServerApplication.cpp +++ b/Util/src/ServerApplication.cpp @@ -147,7 +147,7 @@ DWORD ServerApplication::handleDeviceEvent(DWORD /*event_type*/, LPVOID /*event_ DWORD ServerApplication::ServiceControlHandler(DWORD control, DWORD event_type, LPVOID event_data, LPVOID context) { DWORD result = NO_ERROR; - auto instance = reinterpret_cast(context); + ServerApplication* pThis = reinterpret_cast(context); switch (control) { @@ -159,9 +159,9 @@ DWORD ServerApplication::ServiceControlHandler(DWORD control, DWORD event_type, case SERVICE_CONTROL_INTERROGATE: break; case SERVICE_CONTROL_DEVICEEVENT: - if (instance) + if (pThis) { - result = instance->handleDeviceEvent(event_type, event_data); + result = pThis->handleDeviceEvent(event_type, event_data); } break; }