プロが教えるわが家の防犯対策術!

いつもお世話になります

VBAでDocuworksのApiを使ってプログラムを作成しています
バインダーの作成、文章の挿入等は上手くいっているのですが、バインダーの内部文章名を
取り出すFunctionでその引数の説明が
  「取り出した名前を設定するバイト列のアドレス」書かれているのですが
どのようものか分かってないのでなかなか対処できません

定義は
Public Declare Function XDW_GetDocumentNameInBinder Lib "xdwapi.dll"( _
ByVal handle As Long, _ '...バインダーのハンドル
ByVal nPosition As Long, _ '...内部文書を指定する。1から始まる
ByVal lpszDocName As String, _ '...取り出した名前を設定するバイト列のアドレス
ByVal nDocNameSize As Long, _ '...lpszDocNameに割り当てられた領域のバイト数
ByVal reserved As String) As Long '...予約引数。NULLでなければならない

使用は
rc = XDW_GetDocumentNameInBinder(lngHandle, 1, moji, 255, vbNullString)

戻り値は文書名の文字のバイト数が戻ってきますがmojiに文章名が戻ってきませんので
このところの設定が分かれば解決なのかなっと思っています
分かりました教えてください

以上、よろしくお願い申し上げます

A 回答 (1件)

憶測なのですが、バイト列ということはDBアクセスで言うところの項目番号ではないかと考えます。

なので対象データの何番目の項目かを指定するのではないでしょうか
    • good
    • 0
この回答へのお礼

いつもあ世話様です

ご回答ありがとうございます
ウェブの記事を読みながら何とか解決しました

'配列から文字へ
Declare Function ArryToStr Lib "kernel32" Alias "RtlMoveMemory" ( _
ByVal Destination As String, _
Source As Any, _
ByVal Length As Long _
) As Long


S = Space(10)
Call ArryToStr(S, B(0), 2)
Debug.Print Trim$(S)

得られた結果BをSに変換しています

お礼日時:2019/08/28 18:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!