ホーム › System.AddressBook › IMsgStore
IMsgStore
COMメソッド 13
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 14 HRESULT Advise(DWORD cbEntryID, ENTRYID* lpEntryID, DWORD ulEventMask, IMAPIAdviseSink* lpAdviseSink, DWORD* lpulConnection)
| cbEntryID | DWORD | in | lpEntryID が指す監視対象オブジェクトのエントリ ID のバイト数を指定する。 |
| lpEntryID | ENTRYID* | inoptional | 通知を受け取る対象オブジェクトのエントリ ID へのポインタである。ストア全体を対象とするには NULL を指定する。 |
| ulEventMask | DWORD | in | 通知を受け取るイベントの種類を示すマスクを指定する。 |
| lpAdviseSink | IMAPIAdviseSink* | in | 通知を受け取るアドバイズシンク IMAPIAdviseSink を指定する。 |
| lpulConnection | DWORD* | out | 確立された通知接続を識別する接続番号を受け取る変数へのポインタである。 |
| ulConnection | DWORD | in | 解除する通知接続を識別する接続番号を指定する。 |
vtbl 16 HRESULT CompareEntryIDs(DWORD cbEntryID1, ENTRYID* lpEntryID1, DWORD cbEntryID2, ENTRYID* lpEntryID2, DWORD ulFlags, DWORD* lpulResult)
| cbEntryID1 | DWORD | in | lpEntryID1 が指す 1 つ目のエントリ ID のバイト数を指定する。 |
| lpEntryID1 | ENTRYID* | in | 比較する 1 つ目のエントリ ID へのポインタである。 |
| cbEntryID2 | DWORD | in | lpEntryID2 が指す 2 つ目のエントリ ID のバイト数を指定する。 |
| lpEntryID2 | ENTRYID* | in | 比較する 2 つ目のエントリ ID へのポインタである。 |
| ulFlags | DWORD | in | 比較動作を制御するフラグを指定する。 |
| lpulResult | DWORD* | out | 両エントリ ID が同一オブジェクトを指すかどうかの比較結果を受け取る変数へのポインタである。 |
vtbl 17 HRESULT OpenEntry(DWORD cbEntryID, ENTRYID* lpEntryID, GUID* lpInterface, DWORD ulFlags, DWORD* lpulObjType, IUnknown** ppUnk)
| cbEntryID | DWORD | in | lpEntryID が指すエントリ ID のバイト数を指定する。 |
| lpEntryID | ENTRYID* | in | 開くオブジェクトのエントリ ID へのポインタである。NULL でストアのルートフォルダーを開く。 |
| lpInterface | GUID* | inoptional | 開くオブジェクトに要求するインターフェイスの識別子 (IID) へのポインタである。 |
| ulFlags | DWORD | in | オブジェクトを開く際の動作を制御するフラグを指定する。 |
| lpulObjType | DWORD* | out | 開かれたオブジェクトの種別を受け取る変数へのポインタである。 |
| ppUnk | IUnknown** | out | 開かれたオブジェクトのインターフェイス IUnknown を受け取るポインタである。 |
vtbl 18 HRESULT SetReceiveFolder(CHAR* lpszMessageClass, DWORD ulFlags, DWORD cbEntryID, ENTRYID* lpEntryID)
| lpszMessageClass | CHAR* | inoptional | 受信フォルダーを関連付けるメッセージクラス文字列を指定する。 |
| ulFlags | DWORD | in | 設定動作を制御するフラグを指定する。 |
| cbEntryID | DWORD | in | lpEntryID が指す受信フォルダーのエントリ ID のバイト数を指定する。 |
| lpEntryID | ENTRYID* | in | 受信フォルダーとして設定するフォルダーのエントリ ID へのポインタである。関連付けを解除するには NULL を指定する。 |
vtbl 19 HRESULT GetReceiveFolder(CHAR* lpszMessageClass, DWORD ulFlags, DWORD* lpcbEntryID, ENTRYID** lppEntryID, CHAR** lppszExplicitClass)
| lpszMessageClass | CHAR* | inoptional | 受信フォルダーを問い合わせるメッセージクラス文字列を指定する。 |
| ulFlags | DWORD | in | 取得動作を制御するフラグを指定する。 |
| lpcbEntryID | DWORD* | out | 返された受信フォルダーのエントリ ID のバイト数を受け取る変数へのポインタである。 |
| lppEntryID | ENTRYID** | out | 対応する受信フォルダーのエントリ ID を受け取るポインタである。 |
| lppszExplicitClass | CHAR** | out | 実際に一致したメッセージクラス文字列を受け取るポインタである。 |
vtbl 20 HRESULT GetReceiveFolderTable(DWORD ulFlags, IMAPITable** lppTable)
| ulFlags | DWORD | in | テーブル取得の動作を制御するフラグを指定する。 |
| lppTable | IMAPITable** | out | メッセージクラスと受信フォルダーの対応を示すテーブル IMAPITable を受け取るポインタである。 |
| lpulFlags | DWORD* | inout | ログオフ動作を制御するフラグへのポインタであり、結果のフラグも受け取る。 |
| cbEntryID | DWORD | in | lpEntryID が指すメッセージのエントリ ID のバイト数を指定する。 |
| lpEntryID | ENTRYID* | in | 送信を中止するメッセージのエントリ ID へのポインタである。 |
| ulFlags | DWORD | in | 送信中止の動作を制御するフラグを指定する。 |
vtbl 23 HRESULT GetOutgoingQueue(DWORD ulFlags, IMAPITable** lppTable)
| ulFlags | DWORD | in | テーブル取得の動作を制御するフラグを指定する。 |
| lppTable | IMAPITable** | out | 送信待ちメッセージを示す送信キューテーブル IMAPITable を受け取るポインタである。 |
| lpMessage | IMessage* | in | ロック状態を変更する対象のメッセージ IMessage を指定する。 |
| ulLockState | DWORD | in | 設定するロック状態を指定する。 |
| ulFlags | DWORD | in | 処理完了通知の動作を制御するフラグを指定する。 |
| cbEntryID | DWORD | in | lpEntryID が指すメッセージのエントリ ID のバイト数を指定する。 |
| lpEntryID | ENTRYID* | in | 処理が完了したメッセージのエントリ ID へのポインタである。 |
vtbl 26 HRESULT NotifyNewMail(NOTIFICATION* lpNotification)
| lpNotification | NOTIFICATION* | in | 新着メールを示す通知情報を格納した NOTIFICATION 構造体へのポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IMsgStore "{}" #usecom global IMsgStore IID_IMsgStore "{}" #comfunc global IMsgStore_Advise 14 int,var,int,sptr,var #comfunc global IMsgStore_Unadvise 15 int #comfunc global IMsgStore_CompareEntryIDs 16 int,var,int,var,int,var #comfunc global IMsgStore_OpenEntry 17 int,var,var,int,var,sptr #comfunc global IMsgStore_SetReceiveFolder 18 var,int,int,var #comfunc global IMsgStore_GetReceiveFolder 19 var,int,var,var,var #comfunc global IMsgStore_GetReceiveFolderTable 20 int,sptr #comfunc global IMsgStore_StoreLogoff 21 var #comfunc global IMsgStore_AbortSubmit 22 int,var,int #comfunc global IMsgStore_GetOutgoingQueue 23 int,sptr #comfunc global IMsgStore_SetLockState 24 sptr,int #comfunc global IMsgStore_FinishedMsg 25 int,int,var #comfunc global IMsgStore_NotifyNewMail 26 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IMsgStore "{}" #usecom global IMsgStore IID_IMsgStore "{}" #comfunc global IMsgStore_Advise 14 int,sptr,int,sptr,sptr #comfunc global IMsgStore_Unadvise 15 int #comfunc global IMsgStore_CompareEntryIDs 16 int,sptr,int,sptr,int,sptr #comfunc global IMsgStore_OpenEntry 17 int,sptr,sptr,int,sptr,sptr #comfunc global IMsgStore_SetReceiveFolder 18 sptr,int,int,sptr #comfunc global IMsgStore_GetReceiveFolder 19 sptr,int,sptr,sptr,sptr #comfunc global IMsgStore_GetReceiveFolderTable 20 int,sptr #comfunc global IMsgStore_StoreLogoff 21 sptr #comfunc global IMsgStore_AbortSubmit 22 int,sptr,int #comfunc global IMsgStore_GetOutgoingQueue 23 int,sptr #comfunc global IMsgStore_SetLockState 24 sptr,int #comfunc global IMsgStore_FinishedMsg 25 int,int,sptr #comfunc global IMsgStore_NotifyNewMail 26 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。