XDW_GetInformationをDelphiから利用する

XDW_GetInformationはDocuWorksのシステム情報を取得する関数です。

システム情報とはインストール先のフォルダ、バージョンなどです。

引数

nIndex : 問いあわせる情報

問い合わせに使える値は次の13個
当ページで配布していますヘッダファイルでは次のように移植しています。

XDW_GI_VERSION            = 1;
XDW_GI_INSTALLPATH        = 2;
XDW_GI_BINPATH            = 3;
XDW_GI_PLUGINPATH         = 4;
XDW_GI_FOLDERROOTPATH     = 5;
XDW_GI_USERFOLDERPATH     = 6;
XDW_GI_SYSTEMFOLDERPATH   = 7;
XDW_GI_RECEIVEFOLDERPATH  = 8;
XDW_GI_SENDFOLDERPATH     = 9;
XDW_GI_DWINPUTPATH        = 10;
XDW_GI_DWDESKPATH         = 11;
XDW_GI_DWVIEWERPATH       = 12;
XDW_GI_DWVLTPATH          = 13;

各値の意味はDocuWorks SDK 69ページにも書いてありますが、一応転載。

XDW_GI_VERSION インストールされているDocuWorksのバージョン

XDW_GI_INSTALLPATH DocuWorksのインストールディレクトリ

XDW_GI_BINPATH DocuWorksの実行ファイルがインストールされているディレクトリ

XDW_GI_PLUGINPATH DocuWorks Deskのプラグインモジュールがインストールされているディレクトリ

XDW_GI_FOLDERROOTPATH DocuWorks Deskのフォルダのルートディレクトリ

XDW_GI_USERFOLDERPATH DocuWorks Deskのユーザーフォルダのディレクトリ

XDW_GI_DWINPUTPATH DocuWorks DeskのDocuWorks文書入力用ディレクトリ

XDW_GI_DWDESKPATH DocuWorks Deskの実行ファイルの絶対パス

XDW_GI_DWVIEWERPATH DocuWorks Viewerの実行ファイルの絶対パス

XDW_GI_DWVLTPATH DocuWorks ViewerLightの実行ファイルの絶対パス

(以上はDocuWorks SDK 6.2から転載)

lpszOutput :アウトプットされる情報を格納する変数へのポインタ
nSize :アウトプットされる情報を格納する変数のサイズ
reserved :予約 XDW_NULLを指定

使用方法

まずはnSizeを求めます。

lpszOutputがNullの時は必要なバイト数を返してきます。ここではIndex: Integerをvarで定義。Indexに必要な情報の番号をセット。

たとえばDocuWorksのバージョンを知りたければ XDW_GI_VERSIONもしくは1ですね。

  Size := XDW_GetInformation(Index, XDW_NULL, 0, XDW_NULL);

としてSizeに格納。ちなみにSizeは Integerです。

次にTempCharというPCharを定義して、情報を格納します。領域を確保します。

Getmem(TempChar, Size+1);

+1は#0を格納するために必要かな?と思い付けています。

そして

XDW_GetInformation(Index, TempChar, Size, XDW_NULL);

として実行。

ShowMessage( string( TempChar ) );

とすれば「6.2.2」などとダイアログが表示されます。
あ、もちろんTempCharはFreemem(TempChar);として開放しましょう。tryで囲めば安全ですね。