Condividi tramite


BIND_OPTS struttura (objidl.h)

Contiene i parametri utilizzati durante un'operazione di associazione del moniker.

La struttura BIND_OPTS2 o BIND_OPTS3 può essere usata al posto della struttura BIND_OPTS .

Sintassi

typedef struct tagBIND_OPTS {
  DWORD cbStruct;
  DWORD grfFlags;
  DWORD grfMode;
  DWORD dwTickCountDeadline;
} BIND_OPTS, *LPBIND_OPTS;

Members

cbStruct

Dimensioni di questa struttura, in byte.

grfFlags

Flag che controllano gli aspetti delle operazioni di associazione moniker. Questo valore è una combinazione dei flag di bit nell'enumerazione BIND_FLAGS . La funzione CreateBindCtx inizializza questo membro su zero.

grfMode

Flag da utilizzare all'apertura del file che contiene l'oggetto identificato dal moniker. I valori possibili sono le costanti STGM. L'operazione di associazione usa questi flag nella chiamata a IPersistFile::Load durante il caricamento del file. Se l'oggetto è già in esecuzione, questi flag vengono ignorati dall'operazione di associazione. La funzione CreateBindCtx inizializza questo campo per STGM_READWRITE.

dwTickCountDeadline

Ora dell'orologio in base alla quale il chiamante vuole che l'operazione di associazione venga completata, in millisecondi. Questo membro consente al chiamante di limitare il tempo di esecuzione di un'operazione quando la velocità è di importanza primaria. Un valore pari a zero indica che non esiste una scadenza. I chiamanti usano spesso questa funzionalità quando si chiama il metodo IMoniker::GetTimeOfLastChange , anche se può essere applicato anche ad altre operazioni. La funzione CreateBindCtx inizializza questo campo su zero.

Le scadenze tipiche consentono alcuni centinaia di millisecondi di esecuzione. Questa scadenza è una raccomandazione, non un requisito; tuttavia, le operazioni che superano la scadenza per un importo elevato possono causare ritardi per l'utente finale. Ogni implementazione del moniker deve tentare di completare l'operazione entro la scadenza o non riuscire con l'errore MK_E_EXCEEDEDDEADLINE.

Se un'operazione di associazione supera la scadenza perché uno o più oggetti necessari non sono in esecuzione, l'implementazione del moniker deve registrare gli oggetti responsabili nel contesto di associazione usando IBindCtx::RegisterObjectParam. Gli oggetti devono essere registrati sotto i nomi dei parametri "ExceededDeadline", "ExceededDeadline1", "ExceededDeadline2" e così via. Se il chiamante trova più tardi l'oggetto nella tabella degli oggetti in esecuzione, il chiamante può ripetere l'operazione di associazione.

La funzione GetTickCount indica il numero di millisecondi dall'avvio del sistema e torna a zero dopo 2^31 millisecondi. Di conseguenza, i chiamanti devono prestare attenzione a non passare inavvertitamente un valore zero (che indica nessuna scadenza) e le implementazioni moniker devono essere consapevoli dei problemi di wrapping dell'orologio.

Commenti

Una struttura BIND_OPTS viene archiviata in un contesto di associazione; lo stesso contesto di associazione viene usato da ogni componente di un moniker composito durante l'associazione, consentendo di passare gli stessi parametri a tutti i componenti di un moniker composito. Per altre informazioni sui contesti di associazione, vedere IBindCtx .

I client Moniker (usare un moniker per acquisire un puntatore di interfaccia a un oggetto) in genere non devono specificare i valori per i membri di questa struttura. La funzione CreateBindCtx crea un contesto di associazione con le opzioni di associazione impostate su valori predefiniti adatti per la maggior parte delle situazioni; la funzione BindMoniker fa la stessa cosa quando si crea un contesto di associazione da usare per l'associazione di un moniker. Se si desidera modificare i valori di queste opzioni di associazione, è possibile passare una struttura BIND_OPTS al metodo IBindCtx::SetBindOptions . Gli implementatori moniker possono passare una struttura BIND_OPTS al metodo IBindCtx::GetBindOptions per recuperare i valori di queste opzioni di associazione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Intestazione objidl.h

Vedi anche

CreateBindCtx

Ibindctx

Imoniker