0

Lotus Notes C++APIを使い始めています。UNIDに基づいたドキュメントを取得しようとしています。特定のUNIDを知っていますが、それをに書き込む方法がわかりませんUNIVERSALNOTEID

Lotus Notes 8.5.2、C ++ API 8.0.2、Windows 7 64ビット、Visual Studio 2008、C ++(管理対象)を使用しています。

データベースを開くことができます。

 ....
 //Get and open a database.
 LNDatabase   SrcDb;
 Session.GetDatabase( c, &SrcDb, chrServer );
 SrcDb.Open();

次に、ドキュメントを取得しようとします。

 LNDocument ld;
 const UNIVERSALNOTEID u = "00000000000000000000000000000000";
 SrcDb.GetDocument(&u, &ld);

コンパイル時に、エラーが発生します

error C2440: 'initializing' : cannot convert from 'const char [33]' to 'const  
UNIVERSALNOTEID'    

uここで、に渡す正しい方法を学ぶ必要がありますGetDocument

4

2 に答える 2

3

LNDatabase :: GetDocumentは、UNIVERSALNOTEID *ではなく、UNID*引数を取ります。

UNIDを取得するには、LNUniversalIDクラスを使用します。文字列引数を取るコンストラクターと、UNIDへのポインターを返すGetUniversalIDメソッドがあります。

于 2013-02-21T02:30:44.650 に答える
1

@Richard Schwartzは、次のコードを作成するために必要な有用な情報を提供しました。

//Declare document
LNDocument ld;

//Assign to string, convert to const char *, convert to LNString;
std::string strUNID = "F33DD4EA2E8FD32888257B0A0061C063";
const char * chrUNID = strUNID.c_str();
const LNString * lnstrUNID = new LNString(chrUNID);

//Get UNID *
LNUniversalID * lnUNID = new LNUniversalID(*lnstrUNID);
const UNIVERSALNOTEID * unidUNID = lnUNID->GetUniversalID();

//Get document.
LNSTATUS lsGetDocument;
NOTEID ln;
try
{
    lsGetDocument = SrcDb.GetDocument(unidUNID, &ld);
    LNSTATUS lsStatus = ld.Open();
    ln = ld.GetNoteID();
    Console::Write("NOTEID: ");
    Console::WriteLine(ln.ToString());
}
catch (System::Exception ^e)
{
    String^ eMessage = e->Message;
    Console::WriteLine(eMessage);
}
于 2013-02-21T21:37:42.427 に答える