|
1 // Windows/COM.cpp |
|
2 |
|
3 #include "StdAfx.h" |
|
4 |
|
5 #include "Windows/COM.h" |
|
6 #include "Common/StringConvert.h" |
|
7 |
|
8 namespace NWindows { |
|
9 namespace NCOM { |
|
10 |
|
11 // CoInitialize (NULL); must be called! |
|
12 |
|
13 UString GUIDToStringW(REFGUID guid) |
|
14 { |
|
15 UString string; |
|
16 const int kStringSize = 48; |
|
17 StringFromGUID2(guid, string.GetBuffer(kStringSize), kStringSize); |
|
18 string.ReleaseBuffer(); |
|
19 return string; |
|
20 } |
|
21 |
|
22 AString GUIDToStringA(REFGUID guid) |
|
23 { |
|
24 return UnicodeStringToMultiByte(GUIDToStringW(guid)); |
|
25 } |
|
26 |
|
27 HRESULT StringToGUIDW(const wchar_t *string, GUID &classID) |
|
28 { |
|
29 return CLSIDFromString((wchar_t *)string, &classID); |
|
30 } |
|
31 |
|
32 HRESULT StringToGUIDA(const char *string, GUID &classID) |
|
33 { |
|
34 return StringToGUIDW(MultiByteToUnicodeString(string), classID); |
|
35 } |
|
36 |
|
37 }} |