2 * Based on the genguid utility for WINE and ReactOS
4 * Copyright 2003 Jonathan Wilson
5 * Copyright 2005 Steven Edwards
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 static HRESULT (*pCoInitialize
)(PVOID
);
27 static void (*pCoUninitialize
)(void);
28 static HRESULT (*pCoCreateGuid
)(GUID
*);
37 /* Load ole32. We will need it later on */
38 olelib
= LoadLibraryA( "ole32.dll" );
41 pCoInitialize
= (HRESULT (*)(void*))GetProcAddress( olelib
, "CoInitialize" );
42 pCoUninitialize
= (void (*)())GetProcAddress( olelib
, "CoUninitialize" );
43 pCoCreateGuid
= (HRESULT (*)(GUID
*))GetProcAddress( olelib
, "CoCreateGuid" );
45 if (pCoInitialize(NULL
) != S_OK
)
47 printf("Unable to initalize OLE libraries\n");
49 result
= pCoCreateGuid(&m_guid
);
51 printf("Unable to create GUID\n");
54 strfmt
= "%08lX-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X\r\n";
55 printf(strfmt
,m_guid
.Data1
,m_guid
.Data2
,m_guid
.Data3
,m_guid
.Data4
[0],
56 m_guid
.Data4
[1],m_guid
.Data4
[2],m_guid
.Data4
[3],m_guid
.Data4
[4],m_guid
.Data4
[5],
57 m_guid
.Data4
[6],m_guid
.Data4
[7],m_guid
.Data1
,m_guid
.Data2
,m_guid
.Data3
,m_guid
.Data4
[0],
58 m_guid
.Data4
[1],m_guid
.Data4
[2],m_guid
.Data4
[3],m_guid
.Data4
[4],m_guid
.Data4
[5],
59 m_guid
.Data4
[6],m_guid
.Data4
[7]);