Programming Windows Maniacs - プログラミング ウィンドウズ マニアックス ■ ご利用に際して ■ 更新履歴 ■ お問い合わせ ■ このホームページについて  
ホーム >> 基本 >> GUIDを生成するには

GUIDを生成するには

  GUIDを生成するには、CoCreateGuid () API にて簡単に行うことができます。
  CoInitialize () APIは不要です。

  下記はGUIDを生成・文字列化する例になります。

 

■■■ guid プロジェクト
main.cpp

#include <windows.h>
#include <tchar.h>

#include <string>

int WINAPI _tWinMain ( HINSTANCE,
    HINSTANCE,
    _TCHAR *,
    int )
{
    HRESULT hResult;
    GUID guid;
    memset ( &guid, 0, sizeof ( GUID ) );
    hResult = CoCreateGuid ( &guid );
    if ( SUCCEEDED ( hResult ) )
    {
        LPOLESTR pOleStr;
        hResult = StringFromIID ( guid, &pOleStr );
        if ( SUCCEEDED ( hResult ) )
        {
            std::basic_string < _TCHAR > strResult;
#ifdef _UNICODE
            strResult = pOleStr;
#else
            UINT nSize = wcstombs ( NULL, pOleStr, 0 );
            char *pszBuf = new char[ nSize + 1 ];
            memset ( pszBuf, 0, nSize + 1 );
            wcstombs ( pszBuf, pOleStr, nSize );
            strResult = pszBuf;
            delete[] pszBuf;
#endif
            CoTaskMemFree ( pOleStr );

            MessageBox ( NULL,
                strResult.c_str (),
                _TEXT ( "生成した GUID の確認" ),
                MB_OK );
        }
    }

    return 0;
}

  ■ ご利用に際して ■ 更新履歴 ■ お問い合わせ ■ このホームページについて Copyright © 2014 A.Morita