|
|
//----------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996.
//
// File: dsiface.cxx
//
// Contents: ADs calls for Class Store Property Read/Write
//
//
// History: Sep-Oct 96. DebiM
//
//----------------------------------------------------------------------------
#include "cstore.hxx"
#pragma warning ( disable : 4018 )
#pragma warning ( disable : 4244 )
//
// From CSPLATFORM to DS datatype
//
void UnpackPlatform (DWORD *pdwArch, CSPLATFORM *pPlatform) { unsigned char *pc = (unsigned char *)pdwArch; *(pc) = (unsigned char)pPlatform->dwPlatformId; *(++pc) = (unsigned char)pPlatform->dwVersionHi; *(++pc) = (unsigned char)pPlatform->dwVersionLo; *(++pc) = (unsigned char)pPlatform->dwProcessorArch; }
//
// From DS datatype to CSPLATFORM
//
void PackPlatform (DWORD dwArch, CSPLATFORM *pPlatform) { unsigned char *pc = (unsigned char *)&dwArch; pPlatform->dwPlatformId = *(pc); pPlatform->dwVersionHi = *(++pc); pPlatform->dwVersionLo = *(++pc); pPlatform->dwProcessorArch = *(++pc); }
//+-------------------------------------------------------------------------
//
// Function: StringFromGUID
//
//--------------------------------------------------------------------------
int StringFromGUID(REFGUID rguid, LPOLESTR lptsz) { swprintf(lptsz, L"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", rguid.Data1, rguid.Data2, rguid.Data3, rguid.Data4[0], rguid.Data4[1], rguid.Data4[2], rguid.Data4[3], rguid.Data4[4], rguid.Data4[5], rguid.Data4[6], rguid.Data4[7]); return 36; }
//+-------------------------------------------------------------------------
//
// Function: RdnFromGUID
//
//--------------------------------------------------------------------------
int RDNFromGUID(REFGUID rguid, LPOLESTR lptsz) { wcscpy (lptsz, L"CN="); StringFromGUID(rguid, lptsz+3); return 3+36; }
//BUGBUG. This belongs in a common library
void GUIDFromString( LPOLESTR psz, GUID *pclsguid) //
// Converts a Stringified GUID to GUID structure
//
{ WCHAR szC [40]; LPOLESTR szClsId; LPOLESTR endptr; memset ((void *)pclsguid, NULL, sizeof (GUID)); if ((!psz) || (*psz == NULL)) return;
if (wcslen(psz) < 36) return;
wcsncpy (&szC [0], psz, 36); szC[36] = L'\0';
szClsId = &szC[0]; *(szClsId+36) = NULL; pclsguid->Data4[7] = wcstoul (szClsId+34, &endptr, 16);
*(szClsId+34) = NULL; pclsguid->Data4[6] = wcstoul (szClsId+32, &endptr, 16);
*(szClsId+32) = NULL; pclsguid->Data4[5] = wcstoul (szClsId+30, &endptr, 16);
*(szClsId+30) = NULL; pclsguid->Data4[4] = wcstoul (szClsId+28, &endptr, 16);
*(szClsId+28) = NULL; pclsguid->Data4[3] = wcstoul (szClsId+26, &endptr, 16);
*(szClsId+26) = NULL; pclsguid->Data4[2] = wcstoul (szClsId+24, &endptr, 16); *(szClsId+23) = NULL; pclsguid->Data4[1] = wcstoul (szClsId+21, &endptr, 16);
*(szClsId+21) = NULL; pclsguid->Data4[0] = wcstoul (szClsId+19, &endptr, 16); *(szClsId+18) = NULL; pclsguid->Data3 = wcstoul (szClsId+14, &endptr, 16);
*(szClsId+13) = NULL; pclsguid->Data2 = wcstoul (szClsId+9, &endptr, 16);
*(szClsId+8) = NULL; pclsguid->Data1 = wcstoul (szClsId, &endptr, 16); }
BOOL IsNullGuid(REFGUID rguid) { UINT i; if (rguid.Data1) return FALSE; if (rguid.Data2) return FALSE; if (rguid.Data3) return FALSE; for (i=0; i < 8; ++i) { if (rguid.Data4[i]) return FALSE; } return TRUE; }
|