devxlogo

ProgIDToCLSID – Convert a ProgID into a CLSID

ProgIDToCLSID – Convert a ProgID into a CLSID

Private Declare Function CLSIDFromProgID Lib "ole32.dll" (ByVal lpszProgID As _    Long, pCLSID As Any) As LongPrivate Declare Function StringFromCLSID Lib "ole32.dll" (pCLSID As Any, _    lpszProgID As Long) As LongPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _    Any, source As Any, ByVal bytes As Long)Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)' Convert a ProgID (such as "Word.Application") into the' string representation of its CLSIDFunction ProgIdToCLSID(ByVal ProgID 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        ' get the CLSID in binary form    CLSIDFromProgID StrPtr(ProgID), guid(0)    ' convert to a string, get pointer to result    StringFromCLSID guid(0), pResult    ' 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    ProgIdToCLSID = Space$(length  2)    CopyMemory ByVal StrPtr(ProgIdToCLSID), ByVal pResult, length    ' release the memory allocated to the string    CoTaskMemFree pResultEnd Function

devxblackblue

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