BIND_OPTS3 結構 (objidl.h)

包含Moniker系結作業期間所使用的參數。

語法

typedef struct tagBIND_OPTS3 {
  DWORD        cbStruct;
  DWORD        grfFlags;
  DWORD        grfMode;
  DWORD        dwTickCountDeadline;
  DWORD        dwTrackFlags;
  DWORD        dwClassContext;
  LCID         locale;
  COSERVERINFO *pServerInfo;
  HWND         hwnd;
} BIND_OPTS3, *LPBIND_OPTS3;

成員

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實作應該注意時鐘包裝問題。

dwTrackFlags

Moniker 可以在鏈接追蹤期間使用此值。 如果已移動Moniker參考的原始保存數據,Moniker 可以嘗試透過搜尋原始數據來重新建立連結,但有一些適當的機制。 此成員提供如何解析連結的其他資訊。 請參閱 IShellLink::ResolvefFlags 參數的檔。

COM 的檔案Moniker實作會使用殼層鏈接機制來重新建立連結,並將這些旗標傳遞至 IShellLink::Resolve

dwClassContext

取自 CLSCTX 列舉的類別內容,用於具現化物件。 Monikers 通常會將此值傳遞至 CoCreateInstancedwClsContext 參數。

locale

LCID 值,指出客戶端系結物件所要使用的地區設定喜好設定。 Moniker 會將此值傳遞至 IClassActivator::GetClassObject

pServerInfo

COSERVERINFO 結構的指標。 此成員可讓呼叫 IMoniker::BindToObject 的用戶端指定伺服器資訊。 用戶端可能會將 BIND_OPTS2 結構傳遞至 IBindCtx::SetBindOptions 方法。 如果在 COSERVERINFO 結構中指定伺服器名稱,Moniker 系結將會轉送到指定的電腦。 SetBindOptions 只會複製 BIND_OPTS2的結構成員,而不是 COSERVERINFO 結構及其所包含的指標。 呼叫端在釋放系結內容之前,可能無法釋放上述任何指標。 COM 的新類別Moniker目前不接受 pServerInfo 旗標。

hwnd

視窗的句柄,如果適用,就會成為提高許可權 UI 的擁有者。 如果 hwndNULL,COM 會呼叫 GetActiveWindow 函式,以尋找與目前線程相關聯的視窗句柄。 如果客戶端是無法填入 BIND_OPTS3 結構的腳本,就可能發生此情況。 在此情況下,COM 會嘗試使用與腳本線程相關聯的視窗。

備註

BIND_OPTS3結構會儲存在系結內容中;在系結期間,複合Moniker的每個元件都會使用相同的系結內容,讓相同的參數傳遞至複合Moniker的所有元件。 如需系結內容的詳細資訊,請參閱 IBindCtx

Moniker 用戶端 (使用Moniker來取得物件的介面指標) 通常不需要為此結構的成員指定值。 CreateBindCtx 函式會建立系結內容,並將系結選項設定為適用於大部分情況的預設值;BindMoniker 函式會在建立系結內容以用於系結Moniker時執行相同的動作。 如果您想要修改這些系結選項的值,您可以將 BIND_OPTS3 結構傳遞至 IBindCtx::SetBindOptions 方法,來執行此動作。 Moniker 實作者可以將 BIND_OPTS3 結構傳遞至 IBindCtx::GetBindOptions 方法,以擷取這些系結選項的值。

規格需求

需求
最低支援的用戶端 Windows 10 組建 20348
最低支援的伺服器 Windows 10 組建 20348
標頭 objidl.h

另請參閱

CreateBindCtx

IBindCtx

IMoniker