BIND_OPTS 結構 (objidl.h)
包含Moniker系結作業期間所使用的參數。
BIND_OPTS2或BIND_OPTS3結構可用來取代BIND_OPTS結構。
語法
typedef struct tagBIND_OPTS {
DWORD cbStruct;
DWORD grfFlags;
DWORD grfMode;
DWORD dwTickCountDeadline;
} BIND_OPTS, *LPBIND_OPTS;
成員
cbStruct
這個結構的大小,以位元組為單位。
grfFlags
控制Moniker系結作業層面的旗標。 這個值是 BIND_FLAGS 列舉中位旗標的任何組合。 CreateBindCtx 函式會將這個成員初始化為零。
grfMode
開啟含有由 Moniker 所識別之物件的檔案時應該使用的旗標。 可能的值為 STGM 常數。 系結作業會在載入檔案時,在 呼叫 IPersistFile::Load 中使用這些旗標。 如果物件已在執行中,系結作業會忽略這些旗標。 CreateBindCtx 函式會將此字段初始化為STGM_READWRITE。
dwTickCountDeadline
呼叫端希望系結作業完成的時鐘時間,以毫秒為單位。 此成員可讓呼叫端在速度為主要重要性時限制作業的運行時間。 值為零表示沒有期限。 呼叫者最常在呼叫 IMoniker::GetTimeOfLastChange 方法時使用這項功能,不過也可以將其套用至其他作業。 CreateBindCtx 函式會將此欄位初始化為零。
一般期限允許數百毫秒的執行。 此期限是建議,而不是需求;不過,超過期限的作業可能會對終端使用者造成延遲。 每個Moniker實作都應該嘗試依照期限完成其作業,或失敗並出現錯誤MK_E_EXCEEDEDDEADLINE。
如果系結作業因為一或多個需要的物件未執行而超過其期限,Moniker 實作應該使用 IBindCtx::RegisterObjectParam 在系結內容中註冊負責的物件。 對象應該註冊在參數名稱 「ExceededDeadline」、“ExceededDeadline1”、“ExceededDeadline2” 等之下。 如果呼叫端稍後在執行中的對象數據表中尋找物件,呼叫端可以重試系結作業。
GetTickCount 函式指出系統啟動之後的毫秒數,並在 2^31 毫秒之後換回零。 因此,呼叫端應該小心不要不小心傳遞零值 (這表示沒有期限) ,而Moniker實作應該注意時鐘包裝問題。
備註
BIND_OPTS 結構會儲存在系結內容中;在系結期間,複合Moniker的每個元件都會使用相同的系結內容,讓相同的參數傳遞至複合Moniker的所有元件。 如需系結內容的詳細資訊,請參閱 IBindCtx 。
Moniker 用戶端 (使用Moniker來取得物件的介面指標) 通常不需要為此結構的成員指定值。 CreateBindCtx 函式會建立系結內容,並將系結選項設定為適用於大部分情況的預設值;BindMoniker 函式會在建立系結內容以用於系結Moniker時執行相同的動作。 如果您想要修改這些系結選項的值,您可以將 BIND_OPTS 結構傳遞至 IBindCtx::SetBindOptions 方法,即可這麼做。 Moniker 實作者可以將 BIND_OPTS 結構傳遞至 IBindCtx::GetBindOptions 方法,以擷取這些系結選項的值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
標頭 | objidl.h |