VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2005/07/29(Fri) 10:39
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^2: OleCreatePictureIndirectについて

> >IID_IDispatch.id(8) = &HC0
> >IID_IDispatch.id(15) = &H46
> とピクチャオブジェクトに変換する処理の所でこう宣言してますが
> 他のページで(heropaさんの掲示板から引用(勝手にすいません。))
> >Private Type tagGUID
> >    Data1           As Long
> >    Data2           As Integer
> >    Data3           As Integer
> >    Data4(0 To 7)   As Byte
> >End Type
> >udtGUID.Data1 = &H20400
> >udtGUID.Data4(0) = &HC0
> >udtGUID.Data4(7) = &H46
> と宣言が多少なり違うんですがこの違いがよく分かりませんでした。

今までに、  {00020400-0000-0000-C000-000000000046}  のような形式で記述された
16進数文字列を見たことはありませんか?
これは、GUID(Global Unique Identifier:グイード/ジーユーアイディー)という
128bitの値をあらわしています。

クラスやインターフェイスには、それぞれ固有のGUID値が割り当てられており、
それらがレジストリに登録されています。

たとえば、「IDispatch インターフェイス」なら
  HKEY_CLASSES_ROOT\Interface\{00020400-0000-0000-C000-000000000046}
といった具合です。これを指定したものです。


サンプルによって宣言方法が違っていますが、それは単にVB上の表現の違いです。
APIにとってみれば、128bit(16バイト)の連続した領域に、上記のGUID値が
格納されていればよいため、サイズと値さえ正しければ、どの記述でも間違いではありません。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -