これだけではまだ、それらの関数を呼び出せる段階になったとはいえません。個々の引数の意味も分かりません。メソッドやプロパティの名前だけでなく、その使い方についても理解しておく必要があります。Officeアプリケーションが作成するオブジェクトは、MSDNに簡単なリファレンスが掲載されています。Referenceから確認することができます。Objectを選択すると、Applicationオブジェクトのメソッドやプロパティを確認することができます。例としてDocumentsプロパティの使い方を調べてみましょう。Documentsという一文に注目してください。Documentsプロパティを呼び出すと、Documentsオブジェクトが返るようです。このように新しいオブジェクトが登場した場合は、今度はそのオブジェクトについて調べることになります。指定したドキュメントがオープンされ、そのドキュメントを表すDocumentオブジェクトが返るようです。Openメソッドを使用することによって、Wordに1つのドキュメントを読み込ませることができます。今回のプログラムは、Wordを起動して1つのドキュメントを開きます。ドキュメントは、c:\\sample.docであると仮定しています。TEXT("ドキュメントのオープンに失敗しました。hr;}ドキュメントを開くには、DocumentsオブジェクトのOpenメソッドを呼び出す必要があります。ApplicationオブジェクトのDocumentsプロパティを呼び出します。varResult.pdispVal;Invokeの第1引数は、Documentsプロパティを実装するApplicationオブジェクトのポインタを指定します。第2引数はDocumentsという名前を指定し、これは取得に関するプロパティですから第3引数はDISPATCH_PROPERTYGETを指定します。取得に関するプロパティに引数を指定する必要はないため、第4引数と第5引数はNULLと0で構いません。第6引数は、プロパティの戻り値を受け取る変数のアドレスを指定します。この場合は、事前にVariantInitを呼び出しておく必要があります。IDispatch型のpDocumentsという変数で受け取っています。Documentsオブジェクトへのポインタを取得したら、これを使用してOpenメソッドを呼び出すことができます。これをVARIANT構造体に格納できるように、vtメンバにVT_BSTRを指定します。これにより、bstrValメンバにBSTR型の文字列を指定することができます。Invokeの第1引数はpDocumentsを指定していますが、ここで間違ってもpApplicationを指定してはいけません。これを識別しているpDocumentsを指定することになります。第2引数はOpenという文字列を指定し、これはメソッドですから第3引数はDISPATCH_METHODになります。第5引数はメソッドの引数とする数であり、ここでは1としています。ファイル名を格納した1つのVARIANT構造体のみを指定しています。pdispValからDocumentオブジェクトのポインタを取得します。今回のように文字列がVARIANT構造体に格納されている場合はVariantClearで文字列を開放しても構いません。文字列をドキュメントに保存する例を次に示します。TEXT("ドキュメントを保存しました。TEXT("ドキュメントの保存に失敗しました。hr;}まず、Visibleプロパティを呼び出していない点に注目してください。今回は、ドキュメントを保存する目的でWordを起動しますから、Wordのウインドウが表示される必要はありません。Addメソッドを呼び出してDocumentオブジェクトを取得します。今度は、DocumentオブジェクトのContentプロパティを呼び出し、Rangeオブジェクトを取得します。vtメンバにVT_BSTRを指定し、bstrValに書き込みたい文字列を指定します。文字列の書き込みが終了したら、ドキュメントオブジェクトのSaveAsメソッドを呼び出してドキュメントを保存します。指定する引数は、保存先のファイル名でなければなりません。ApplicationオブジェクトのQuitメソッドでWordを終了させます。FALSE以外を指定するとWordによって保存確認が行われるようになります。確認を行わないようにFALSEを指定します。