Skip to content

Commit a509c39

Browse files
committed
test
1 parent 7e57e33 commit a509c39

10 files changed

Lines changed: 54 additions & 60 deletions

File tree

src/DOpusScriptingExtensions/ExifTool/ExifTool.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#pragma once
22

33
class ATL_NO_VTABLE CExifTool :
4-
public CComObjectRootEx<CComSingleThreadModel>,
5-
public CComCoClass<CExifTool, &CLSID_ExifTool>,
6-
public IDispatchImpl<IExifTool, &IID_IExifTool, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
4+
public ATL::CComObjectRootEx<ATL::CComSingleThreadModel>,
5+
public ATL::CComCoClass<CExifTool, &CLSID_ExifTool>,
6+
public ATL::IDispatchImpl<IExifTool, &IID_IExifTool, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
77
{
88
public:
99
DECLARE_REGISTRY_RESOURCEID(IDR_ExifTool)

src/DOpusScriptingExtensions/FileMimeTypeDetector/FileMimeTypeDetector.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#pragma once
22

3-
using namespace ATL;
43
class ATL_NO_VTABLE CFileMimeTypeDetector :
5-
public CComObjectRootEx<CComSingleThreadModel>,
6-
public CComCoClass<CFileMimeTypeDetector, &CLSID_FileMimeTypeDetector>,
7-
public IDispatchImpl<IFileMimeTypeDetector, &IID_IFileMimeTypeDetector, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
4+
public ATL::CComObjectRootEx<ATL::CComSingleThreadModel>,
5+
public ATL::CComCoClass<CFileMimeTypeDetector, &CLSID_FileMimeTypeDetector>,
6+
public ATL::IDispatchImpl<IFileMimeTypeDetector, &IID_IFileMimeTypeDetector, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
87
{
98
public:
109
DECLARE_REGISTRY_RESOURCEID(IDR_FileMimeTypeDetector)

src/DOpusScriptingExtensions/FileMimeTypeDetector/FileMimeTypeDetectorResult.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
#pragma once
22

3-
using namespace ATL;
4-
53
class ATL_NO_VTABLE CFileMimeTypeDetectorResult :
6-
public CComObjectRootEx<CComSingleThreadModel>,
7-
public CComCoClass<CFileMimeTypeDetectorResult, &__uuidof(FileMimeTypeDetectorResult)>,
8-
public IDispatchImpl<IFileMimeTypeDetectorResult, &IID_IFileMimeTypeDetectorResult, &LIBID_DOpusScriptingExtensionsLib, 1, 0>
4+
public ATL::CComObjectRootEx<ATL::CComSingleThreadModel>,
5+
public ATL::CComCoClass<CFileMimeTypeDetectorResult, &__uuidof(FileMimeTypeDetectorResult)>,
6+
public ATL::IDispatchImpl<IFileMimeTypeDetectorResult, &IID_IFileMimeTypeDetectorResult, &LIBID_DOpusScriptingExtensionsLib, 1, 0>
97
{
108
public:
119
BEGIN_COM_MAP(CFileMimeTypeDetectorResult)

src/DOpusScriptingExtensions/MediaInfoRetriever/MediaInfoRetriever.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
#pragma once
22

3-
using namespace ATL;
4-
53
class ATL_NO_VTABLE CMediaInfoRetriever :
6-
public CComObjectRootEx<CComSingleThreadModel>,
7-
public CComCoClass<CMediaInfoRetriever, &CLSID_MediaInfoRetriever>,
8-
public IDispatchImpl<IMediaInfoRetriever, &IID_IMediaInfoRetriever, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
4+
public ATL::CComObjectRootEx<ATL::CComSingleThreadModel>,
5+
public ATL::CComCoClass<CMediaInfoRetriever, &CLSID_MediaInfoRetriever>,
6+
public ATL::IDispatchImpl<IMediaInfoRetriever, &IID_IMediaInfoRetriever, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
97
{
108
public:
119
DECLARE_REGISTRY_RESOURCEID(IDR_MediaInfoRetriever)

src/DOpusScriptingExtensions/ProcessRunner/ProcessRunner.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#pragma once
22

3-
using namespace ATL;
43
class ATL_NO_VTABLE CProcessRunner :
5-
public CComObjectRootEx<CComSingleThreadModel>,
6-
public CComCoClass<CProcessRunner, &CLSID_ProcessRunner>,
7-
public IDispatchImpl<IProcessRunner, &IID_IProcessRunner, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0> {
4+
public ATL::CComObjectRootEx<ATL::CComSingleThreadModel>,
5+
public ATL::CComCoClass<CProcessRunner, &CLSID_ProcessRunner>,
6+
public ATL::IDispatchImpl<IProcessRunner, &IID_IProcessRunner, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0> {
87
public:
98
DECLARE_REGISTRY_RESOURCEID(IDR_ProcessRunner)
109
BEGIN_COM_MAP(CProcessRunner)

src/DOpusScriptingExtensions/ProcessRunner/ProcessRunnerResult.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
#pragma once
22

3-
using namespace ATL;
4-
53
class ATL_NO_VTABLE CProcessRunnerResult :
6-
public CComObjectRootEx<CComSingleThreadModel>,
7-
public CComCoClass<CProcessRunnerResult, &__uuidof(ProcessRunnerResult)>,
8-
public IDispatchImpl<IProcessRunnerResult, &IID_IProcessRunnerResult, &LIBID_DOpusScriptingExtensionsLib, 1, 0> {
4+
public ATL::CComObjectRootEx<ATL::CComSingleThreadModel>,
5+
public ATL::CComCoClass<CProcessRunnerResult, &__uuidof(ProcessRunnerResult)>,
6+
public ATL::IDispatchImpl<IProcessRunnerResult, &IID_IProcessRunnerResult, &LIBID_DOpusScriptingExtensionsLib, 1, 0> {
97
public:
108
BEGIN_COM_MAP(CProcessRunnerResult)
119
COM_INTERFACE_ENTRY(IProcessRunnerResult)

src/DOpusScriptingExtensions/StringFormatter/StringFormatter.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#pragma once
22

3-
using namespace ATL;
43
class ATL_NO_VTABLE CStringFormatter :
5-
public CComObjectRootEx<CComSingleThreadModel>,
6-
public CComCoClass<CStringFormatter, &CLSID_StringFormatter>,
7-
public IDispatchImpl<IStringFormatter, &IID_IStringFormatter, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
4+
public ATL::CComObjectRootEx<ATL::CComSingleThreadModel>,
5+
public ATL::CComCoClass<CStringFormatter, &CLSID_StringFormatter>,
6+
public ATL::IDispatchImpl<IStringFormatter, &IID_IStringFormatter, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
87
{
98
public:
109
DECLARE_REGISTRY_RESOURCEID(IDR_StringFormatter)

src/DOpusScriptingExtensions/UCharDet/UCharDet.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#pragma once
22

33
class ATL_NO_VTABLE CUCharDet :
4-
public CComObjectRootEx<CComSingleThreadModel>,
5-
public CComCoClass<CUCharDet, &CLSID_UCharDet>,
6-
public IDispatchImpl<IUCharDet, &IID_IUCharDet, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
4+
public ATL::CComObjectRootEx<ATL::CComSingleThreadModel>,
5+
public ATL::CComCoClass<CUCharDet, &CLSID_UCharDet>,
6+
public ATL::IDispatchImpl<IUCharDet, &IID_IUCharDet, &LIBID_DOpusScriptingExtensionsLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
77
{
88
public:
99
DECLARE_REGISTRY_RESOURCEID(IDR_UCharDet)

src/DOpusScriptingExtensions/Utils/ComUtils.h

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
#pragma once
22

3-
using namespace ATL;
4-
5-
inline CComVariant GetPropertyValue(IDispatch& obj, const std::wstring_view propName) {
3+
inline ATL::CComVariant GetPropertyValue(IDispatch& obj, const std::wstring_view propName) {
64
DISPID dispId = 0;
75
LPOLESTR lpNames[] = { const_cast<LPOLESTR>(propName.data()) };
86
THROW_IF_FAILED_MSG(
97
obj.GetIDsOfNames(IID_NULL, lpNames, 1, LOCALE_USER_DEFAULT, &dispId),
108
L"iDispatchObj doesn't have a property '{}'", propName);
119

12-
CComVariant result;
10+
ATL::CComVariant result;
1311
DISPPARAMS dispParams = { 0 };
1412
THROW_IF_FAILED_MSG(
1513
obj.Invoke(dispId, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_PROPERTYGET, &dispParams, &result, NULL, NULL),
@@ -19,18 +17,18 @@ inline CComVariant GetPropertyValue(IDispatch& obj, const std::wstring_view prop
1917
}
2018

2119
template<typename CoClassType, typename QueryInterfaceType>
22-
CComPtr<QueryInterfaceType> CreateComObject(std::function<void(CoClassType&)> initializer) {
23-
CComObject<CoClassType>* rawObj = nullptr;
20+
ATL::CComPtr<QueryInterfaceType> CreateComObject(std::function<void(CoClassType&)> initializer) {
21+
ATL::CComObject<CoClassType>* rawObj = nullptr;
2422
THROW_IF_FAILED_MSG(
25-
CComObject<CoClassType>::CreateInstance(&rawObj),
23+
ATL::CComObject<CoClassType>::CreateInstance(&rawObj),
2624
L"Failed to create a COM object of type '{}'", ToUtf16(typeid(CoClassType).name()));
2725

2826
// Wrap the object in CComPtr to ensure that it is released in case of an exception
29-
CComPtr<CoClassType> obj(rawObj);
27+
ATL::CComPtr<CoClassType> obj(rawObj);
3028

3129
initializer(*obj);
3230

33-
CComQIPtr<QueryInterfaceType> res(obj);
31+
ATL::CComQIPtr<QueryInterfaceType> res(obj);
3432
if (!res) {
3533
THROW_HRESULT(
3634
E_NOINTERFACE,

src/DOpusScriptingExtensions/Utils/Exceptions.h

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@
22

33
#define CATCH_ALL_EXCEPTIONS() \
44
catch (const HResultException& ex) { \
5-
AtlReportError(GetObjectCLSID(), ex.LMessage(), __uuidof(IUnknown), ex.HResult()); \
5+
ATL::AtlReportError(GetObjectCLSID(), ex.what(), __uuidof(IUnknown), ex.HResult()); \
66
return ex.HResult(); \
77
} \
8-
catch (const WException& ex) { \
9-
AtlReportError(GetObjectCLSID(), ex.LMessage(), __uuidof(IUnknown), E_FAIL); \
10-
return E_FAIL; \
11-
} \
128
catch (const std::exception& ex) { \
13-
AtlReportError(GetObjectCLSID(), ex.what(), __uuidof(IUnknown), E_FAIL); \
9+
ATL::AtlReportError(GetObjectCLSID(), ex.what(), __uuidof(IUnknown), E_FAIL); \
1410
return E_FAIL; \
1511
} \
1612
catch (...) { \
17-
AtlReportError(GetObjectCLSID(), L"Unknown exception", __uuidof(IUnknown), E_FAIL); \
13+
ATL::AtlReportError(GetObjectCLSID(), L"Unknown exception", __uuidof(IUnknown), E_FAIL); \
1814
return E_FAIL; \
1915
}
2016

@@ -36,29 +32,38 @@
3632
} \
3733
} while (0)
3834

39-
class WException : public std::exception
40-
{
35+
#define THROW_WINAPI_EX(winApiFuncName) do { throw WinApiException(BOOST_PP_WSTRINGIZE(winApiFuncName), LINE_INFO); } while(0)
36+
#define THROW_WINAPI_EX_MSG(winApiFuncName, ...) do { throw WinApiException(BOOST_PP_WSTRINGIZE(winApiFuncName), LINE_INFO, std::format(__VA_ARGS__)); } while(0)
37+
38+
class WException : public std::exception {
4139
public:
4240
WException(const std::wstring_view msg, const std::wstring_view lineInfo)
43-
: msg(std::format(L"{}: {}", lineInfo, msg)) { }
44-
45-
auto LMessage() const { return msg.data(); }
46-
47-
private:
48-
std::wstring msg;
41+
: std::exception(ToUtf8(std::format(L"{}: {}", lineInfo, msg)).c_str()) {}
4942
};
5043

51-
class HResultException : public WException
52-
{
44+
class HResultException : public WException {
5345
public:
5446
HResultException(const HRESULT res, const std::wstring_view msg, const std::wstring_view lineInfo) :
5547
WException(
5648
std::format(L"{}. HRESULT=0x{:08X}({}): {}", msg, static_cast<unsigned long>(res), static_cast<unsigned long>(res), _com_error(res).ErrorMessage()),
5749
lineInfo),
58-
res(res) { }
50+
res(res) {}
5951

6052
auto HResult() const { return res; }
6153

6254
private:
6355
HRESULT res;
6456
};
57+
58+
class WinApiException final : public WException {
59+
public:
60+
explicit WinApiException(std::wstring_view winApiFuncName, const std::wstring_view lineInfo, std::wstring_view msg = L"")
61+
: WException{
62+
std::format(L"WinApi function '{}' failed. {}. ErrorCode: 0x{:08X}({}). ErrorMessage: {}", winApiFuncName, msg, GetLastError(), GetLastError(), GetLastErrorMessage()),
63+
lineInfo } {}
64+
65+
private:
66+
std::wstring GetLastErrorMessage() const {
67+
return ToUtf16(boost::system::error_code(GetLastError(), boost::system::system_category()).message());
68+
}
69+
};

0 commit comments

Comments
 (0)