The system class com.ms.com._Guid is used to represent GUIDs. Passing a _Guid object as a parameter passes a pointer to a GUID to the native function. Declaring a return type of _Guid causes the Microsoft VM to pass a pointer to an uninitialized GUID that the function fills in (in ole mode only).
For example, OLE32 exports the functions CLSIDFromProgID and ProgIDFromCLSID to map between CLSIDs and the human-readable names used by the Visual Basic function CreateObject.
These methods have the following prototypes:
HRESULT CLSIDFromProgID(LPCOLESTR szProgID, LPCLSID pclsid);
HRESULT ProgIDFromCLSID(REFCLSID clsid, LPOLESTR *lpszProgId);
In Java, these methods are declared in the following way:
import com.ms.com._Guid;
class OLE {
/** @dll.import("OLE32", ole) */
public static native _Guid CLSIDFromProgID(String szProgID);
/** @dll.import("OLE32", ole) */
public static native String ProgIDFromCLSID(_Guid clsid);
}
Note Note that com.ms.com._Guid supercedes com.ms.com.Guid (with no underscore).