StringToGuid() changed not to require zero termination exactly at the end of the GUID string; plus it can now return the pointer to the end of the GUID found; akin of strtoi()
This commit is contained in:
parent
92f010b206
commit
ea9a08e02a
@ -158,7 +158,7 @@ template<class _Elem, class _Traits, class _Ax> inline VOID GuidToStringW(_In_ L
|
|||||||
/// \param[in ] lpszGuid String with GUID
|
/// \param[in ] lpszGuid String with GUID
|
||||||
/// \param[out] lpGuid GUID to store the result to
|
/// \param[out] lpGuid GUID to store the result to
|
||||||
///
|
///
|
||||||
BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid);
|
BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_ LPCSTR *lpszGuidEnd = NULL);
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Parses string with GUID and stores it to GUID
|
/// Parses string with GUID and stores it to GUID
|
||||||
@ -166,7 +166,7 @@ BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid);
|
|||||||
/// \param[in ] lpszGuid String with GUID
|
/// \param[in ] lpszGuid String with GUID
|
||||||
/// \param[out] lpGuid GUID to store the result to
|
/// \param[out] lpGuid GUID to store the result to
|
||||||
///
|
///
|
||||||
BOOL WINSTD_API StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ LPGUID lpGuid);
|
BOOL WINSTD_API StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_ LPCWSTR *lpszGuidEnd = NULL);
|
||||||
|
|
||||||
#ifdef _UNICODE
|
#ifdef _UNICODE
|
||||||
#define StringToGuid StringToGuidW
|
#define StringToGuid StringToGuidW
|
||||||
|
10
src/Win.cpp
10
src/Win.cpp
@ -25,7 +25,7 @@
|
|||||||
// StringToGuidA
|
// StringToGuidA
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid)
|
BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_ LPCSTR *lpszGuidEnd)
|
||||||
{
|
{
|
||||||
GUID g;
|
GUID g;
|
||||||
LPSTR lpszEnd;
|
LPSTR lpszEnd;
|
||||||
@ -80,14 +80,15 @@ BOOL WINSTD_API StringToGuidA(_In_z_ LPCSTR lpszGuid, _Out_ LPGUID lpGuid)
|
|||||||
if (*lpszGuid != '}') return FALSE;
|
if (*lpszGuid != '}') return FALSE;
|
||||||
lpszGuid++;
|
lpszGuid++;
|
||||||
|
|
||||||
if (*lpszGuid != 0) return FALSE;
|
if (lpszGuidEnd)
|
||||||
|
*lpszGuidEnd = lpszGuid;
|
||||||
|
|
||||||
*lpGuid = g;
|
*lpGuid = g;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL WINSTD_API StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ LPGUID lpGuid)
|
BOOL WINSTD_API StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ LPGUID lpGuid, _Out_ LPCWSTR *lpszGuidEnd)
|
||||||
{
|
{
|
||||||
GUID g;
|
GUID g;
|
||||||
LPWSTR lpszEnd;
|
LPWSTR lpszEnd;
|
||||||
@ -142,7 +143,8 @@ BOOL WINSTD_API StringToGuidW(_In_z_ LPCWSTR lpszGuid, _Out_ LPGUID lpGuid)
|
|||||||
if (*lpszGuid != '}') return FALSE;
|
if (*lpszGuid != '}') return FALSE;
|
||||||
lpszGuid++;
|
lpszGuid++;
|
||||||
|
|
||||||
if (*lpszGuid != 0) return FALSE;
|
if (lpszGuidEnd)
|
||||||
|
*lpszGuidEnd = lpszGuid;
|
||||||
|
|
||||||
*lpGuid = g;
|
*lpGuid = g;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user