5.2.7 ユーザ定義のクラス識別子・プロパティ識別子の定義

ここでは,ヘッダファイルを作成してGUID値の実体を定義する方法について説明します。

なお,EDMCreateIdsコマンドでも,GUID値の実体を定義できます。EDMCreateIdsコマンドの詳細については,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。また,ソースファイルが一つしかない場合や,ユーザが追加定義したサブクラスやプロパティが少ない場合は,ソースファイル内でdefine文を使用してGUID値を直接定義した方が簡単に定義できることもあります。適切な方法で定義してください。

この例では,次の条件でヘッダファイルを作成します。なお,サブクラスおよびプロパティの追加方法については,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。

条件
  • 追加したサブクラスのクラス識別子は,usrClass_Documentである。
  • 追加したプロパティのプロパティ識別子は,usrProp_NameおよびusrProp_Authorである。
  • 追加したサブクラス,プロパティのGUID値は,次のとおりである。

    表5-5 追加したサブクラス,プロパティのGUID値

    クラス識別子またはプロパティ識別子GUID値
    usrClass_Document(サブクラス)F5D8E3A2-284C-11d2-9177-0000E2130367​
    usrProp_Name(プロパティ)F5D8E3A4-284C-11d4-9177-0000E2130367​
    usrProp_Author(プロパティ)76fa162c-0406-11d2-b29a-0060b0ea4840
  • 作成する定義ファイルの名称は,usrids.hおよびusrvar.hとする。
    なお,作成する定義ファイル名は任意です。

手順を示します。

  1. 追加したサブクラスおよびプロパティのGUID値を確認します。
    GUID値は,システム管理者に確認します。
    システム管理者によるGUID値の確認方法
    GUID値は,EDMCrtSimMetaコマンドを実行することによって確認できます。設定したGUID値をシステム管理者が忘れてしまった場合や,システムでGUID値が自動的に割り振られる設定にしてある場合には,システム管理者がEDMCrtSimMetaコマンドを実行してGUID値を確認してください。
    この例では,表5-5に示したようにGUID値は設定されていることとします。
  2. usrids.hを作成します。
    このヘッダファイルには,GUID値の実体を定義します。
    定義例を次に示します。

    #define usrClass_DocumentVal¥
    { 0xf5d8e3a2,0x284c,0x11d2,¥
    { 0x91,0x77,0x0,0x0,0xe2,0x13,0x3,0x67 }}

    #define usrProp_NameVal¥
    { 0xf5d8e3a4,0x284c,0x11d4,¥
    { 0x91,0x77,0x0,0x0,0xe2,0x13,0x3,0x67 }}

    #define usrProp_AuthorVal¥
    { 0x76fa162c,0x0406,0x11d2,¥
    { 0xb2,0x9a,0x0,0x60,0xb0,0xea,0x48,0x40 }}

  3. usridvar.hを作成します。
    このヘッダファイルには,USR_INIT_IDを定義してあるソースファイルにGUID値の実体を定義し,それ以外のソースファイルにはexternを宣言することを定義します。
    定義例を次に示します。
     

    #include "usrids.h"

    #if defined(USR_INIT_ID)
    #   define USR_DECL_ID(x_) DMA_EXTERN_C DmaId x_=x_##Val;
    #else
    #   define USR_DECL_ID(x_) DMA_EXTERN_C DmaId x_;
    #endif

    USR_DECL_ID(usrClass_Document)
    USR_DECL_ID(usrProp_Name)
    USR_DECL_ID(usrProp_Author)

  4. ソースファイルに,usidvar.hをインクルードします。
    一つのソースファイルだけに,USR_INIT_IDを定義して,usridvar.hをインクルードします。これによって,そのソースファイルにユーザ定義のクラス識別子およびプロパティ識別子のGUID値の実体が定義されます。USR_INIT_IDの定義は,DMA_INIT_IDおよびEDM_INIT_IDを定義したソースファイルと同じファイルにすることをお勧めします。なお,二つ以上のファイルにUSR_INIT_IDを指定しないでください。
    定義例を次に示します。

    #define DMA_INIT_ID
    #define EDM_INIT_ID
    #define USR_INIT_ID

    #include "DBR.h"
    #include "usridvar.h"
      :