]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/windows/ole32/ole32.factor
windows.ole32: add create-guid
[factor.git] / basis / windows / ole32 / ole32.factor
index 02eb52c28e6b80d09618bfe5811569485285f5c0..47c45c8d2f152a08f61892f335eb6b5f15c1d9a1 100644 (file)
@@ -21,6 +21,7 @@ TYPEDEF: REFGUID REFIID
 TYPEDEF: REFGUID REFCLSID
 
 FUNCTION: HRESULT CoCreateInstance ( REFGUID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFGUID riid, LPUNKNOWN out_ppv )
+FUNCTION: HRESULT CoCreateGuid ( GUID* pguid )
 FUNCTION: BOOL IsEqualGUID ( REFGUID rguid1, REFGUID rguid2 )
 FUNCTION: int StringFromGUID2 ( REFGUID rguid, LPOLESTR lpsz, int cchMax )
 FUNCTION: HRESULT CLSIDFromString ( LPOLESTR lpsz, REFGUID out_rguid )
@@ -134,6 +135,9 @@ TUPLE: ole32-error code message ;
 CONSTANT: GUID-STRING-LENGTH
     $[ "{01234567-89ab-cdef-0123-456789abcdef}" length ]
 
+: create-guid ( -- GUID )
+    GUID <struct> dup CoCreateGuid check-ole32-error ;
+
 : string>guid ( string -- guid )
     "{-}" split harvest
     [ first3 [ hex> ] tri@ ]