[DllImport("Rpcrt4.dll",EntryPoint="UuidFromStringA",SetLastError=true, CharSet=CharSet::Ansi, ExactSpelling=true, CallingConvention=CallingConvention::StdCall)]
extern "C" long UuidFromStringA( unsigned char * StringUuid, UUID * Uuid);
UUID
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[ 8 ];
} UUID;
There is an Unicode version call UuidFromStringW
C++/CLI sample
UUID ExpiryUuid;
pin_ptr<UUID> UuidPtr = &Uuid;
pin_ptr<unsigned char> UuidSringPtr = static_cast<unsigned char *>(System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi("C3ECE8CB-E9F8-47f9-AC61-8EA8572403F2").ToPointer());
UuidFromStringA(UuidSringPtr, UuidPtr);