CLSIDToProgID – Convert a CLSID into a ProgID

CLSIDToProgID – Convert a CLSID into a ProgID

Private Declare Function ProgIDFromCLSID Lib "ole32.dll" (pCLSID As Any, _    lpszProgID As Long) As LongPrivate Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpszProgID As _    Long, pCLSID As Any) As LongPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _    Any, source As Any, ByVal bytes As Long)' Convert a string representation of a CLSID, including the' surrounding brace brackets, into the corresponding ProgID.Function CLSIDToProgID(ByVal CLSID As String) As String    Dim pResult As Long, pChar As Long    Dim char As Integer, length As Long    ' No need to use a special UDT    Dim guid(15) As Byte    ' convert from string to a binary CLSID    CLSIDFromString StrPtr(CLSID), guid(0)    ' convert to a string, get pointer to result    ProgIDFromCLSID guid(0), pResult    ' return a null string if not found    If pResult = 0 Then Exit Function    ' find the terminating null char    pChar = pResult - 2    Do        pChar = pChar + 2        CopyMemory char, ByVal pChar, 2    Loop While char    ' now get the entire string in one operation    length = pChar - pResult    ' no need for a temporary string    CLSIDToProgID = Space$(length  2)    CopyMemory ByVal StrPtr(CLSIDToProgID), ByVal pResult, lengthEnd Function


About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist