structure BIND_OPTS (objidl.h)

Contient des paramètres utilisés pendant une opération de liaison de moniker.

La structure BIND_OPTS2 ou BIND_OPTS3 peut être utilisée à la place de la structure BIND_OPTS .

Syntaxe

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

Membres

cbStruct

Taille de cette structure, en octets.

grfFlags

Indicateurs qui contrôlent les aspects des opérations de liaison de moniker. Cette valeur est n’importe quelle combinaison des indicateurs de bits dans l’énumération BIND_FLAGS . La fonction CreateBindCtx initialise ce membre à zéro.

grfMode

Indicateurs devant être utilisés lors de l'ouverture du fichier qui contient l'objet identifié par le moniker. Les valeurs possibles sont les constantes STGM. L’opération de liaison utilise ces indicateurs dans l’appel à IPersistFile ::Load lors du chargement du fichier. Si l’objet est déjà en cours d’exécution, ces indicateurs sont ignorés par l’opération de liaison. La fonction CreateBindCtx initialise ce champ pour STGM_READWRITE.

dwTickCountDeadline

Heure d’horloge à laquelle l’appelant souhaite que l’opération de liaison soit terminée, en millisecondes. Ce membre permet à l’appelant de limiter le temps d’exécution d’une opération lorsque la vitesse est de première importance. La valeur zéro indique qu’il n’y a pas d’échéance. Les appelants utilisent le plus souvent cette fonctionnalité lors de l’appel de la méthode IMoniker ::GetTimeOfLastChange , même si elle peut également être utilement appliquée à d’autres opérations. La fonction CreateBindCtx initialise ce champ à zéro.

Les délais classiques permettent quelques centaines de millisecondes d’exécution. Cette échéance est une recommandation, pas une exigence ; toutefois, les opérations qui dépassent leur échéance d’une grande quantité peuvent entraîner des retards pour l’utilisateur final. Chaque implémentation de moniker doit essayer de terminer son opération à l’échéance ou échouer avec l’erreur MK_E_EXCEEDEDDEADLINE.

Si une opération de liaison dépasse son échéance parce qu’un ou plusieurs objets dont elle a besoin ne sont pas en cours d’exécution, l’implémentation du moniker doit inscrire les objets responsables dans le contexte de liaison à l’aide de IBindCtx ::RegisterObjectParam. Les objets doivent être inscrits sous les noms de paramètres « ExceededDeadline », « ExceededDeadline1 », « ExceededDeadline2 », etc. Si l’appelant trouve ultérieurement l’objet dans la table d’objets en cours d’exécution, l’appelant peut réessayer l’opération de liaison.

La fonction GetTickCount indique le nombre de millisecondes depuis le démarrage du système et retourne à zéro après 2^31 millisecondes. Par conséquent, les appelants doivent faire attention à ne pas passer par inadvertance une valeur zéro (ce qui indique aucune échéance), et les implémentations de moniker doivent être conscientes des problèmes d’habillage d’horloge.

Remarques

Une structure BIND_OPTS est stockée dans un contexte de liaison ; le même contexte de liaison est utilisé par chaque composant d’un moniker composite pendant la liaison, ce qui permet de passer les mêmes paramètres à tous les composants d’un moniker composite. Pour plus d’informations sur les contextes de liaison, consultez IBindCtx .

Les clients Moniker (utilisent un moniker pour acquérir un pointeur d’interface vers un objet) n’ont généralement pas besoin de spécifier des valeurs pour les membres de cette structure. La fonction CreateBindCtx crée un contexte de liaison avec les options de liaison définies sur des valeurs par défaut qui conviennent à la plupart des situations ; la fonction BindMoniker fait la même chose lors de la création d’un contexte de liaison à utiliser dans la liaison d’un moniker. Si vous souhaitez modifier les valeurs de ces options de liaison, vous pouvez le faire en passant une structure BIND_OPTS à la méthode IBindCtx ::SetBindOptions . Les implémenteurs Moniker peuvent passer une structure BIND_OPTS à la méthode IBindCtx ::GetBindOptions pour récupérer les valeurs de ces options de liaison.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
En-tête objidl.h

Voir aussi

CreateBindCtx

IBindCtx

IMoniker