WABEXTDISPLAY structure (wabapi.h)
Do not use. Used by the Windows Address Book (WAB) to initialize user's IContextMenu Interface and IShellPropSheetExt Interface implementations.
Syntax
typedef struct _WABEXTDISPLAY {
ULONG cbSize;
LPWABOBJECT lpWABObject;
LPADRBOOK lpAdrBook;
LPMAPIPROP lpPropObj;
BOOL fReadOnly;
BOOL fDataChanged;
ULONG ulFlags;
LPVOID lpv;
LPTSTR lpsz;
} WABEXTDISPLAY, *LPWABEXTDISPLAY;
Members
cbSize
Type: ULONG
Not used.
lpWABObject
Type: LPWABOBJECT
Pointer to an IWABObject interface that specifies the object to use for calling the IWABObject memory allocation methods. These methods allocate any memory that you pass back to the WAB and that you expect the WAB to free or use. You can also use this pointer to call any of the other IWABObject methods.
lpAdrBook
Type: LPADRBOOK
Pointer to an IAddrBook interface that specifies the object to use for calling any of the standard WAB IAddrBook methods.
lpPropObj
Type: LPMAPIPROP
Pointer to an IMailUser : IMAPIProp object. This interface is relevant for both IShellPropSheetExt Interface and IContextMenu Interface implementations. For IShellPropSheetExt Interface implementations, lpPropObj contains the actual object being displayed. It can be either an IMailUser : IMAPIProp or IDistList : IMAPIContainer object. To determine which object lpPropObj is, query for its PR_OBJECT_TYPE property. You can retrieve properties from this object to populate your extension property sheets.
For IContextMenu Interface implementations, lpPropObj contains a valid object; however, this object does not have any properties associated with it. You can call the AddRef on this object to ensure that the object and any other data of interest in this WABEXTDISPLAY structure survives as long as you need it. If you call AddRef, you must call Release on lpPropObj when you no longer need it.
If your application uses named properties, and you want to get the named properties relevant to you from the WAB, you can call the GetIDsfromNames method on this lpPropObj object to retrieve any such named properties. If you want to access properties that are associated with messaging users, cast this object to an LPMAILUSER before calling GetIDsfromNames on it.
fReadOnly
Type: BOOL
Variable of type BOOL that specifies the read-only property on certain kinds of objects, such as the VCARD_NAME attribute, LDAP search results, and one-off MailUser. This member is relevant only for IShellPropSheetExt Interface. If this flag is set to true, one's property sheet must set all its controls to a read-only or disabled mode, typically in response to the WM_INITDIALOG message. Setting controls to a read-only state makes the user experience more consistent.
fDataChanged
Type: BOOL
Variable of type BOOL that specifies the flag indicating that a change has been made to your property sheet. This member is relevant for IShellPropSheetExt Interface only. Any time the user makes a change such as adding, editing or deleting data on your property sheet, you must set this flag to true to signal to the WAB that the data on your property sheet has changed. If this flag is not set, the WAB may not persist the changes the user made to your property sheet.
ulFlags
Type: ULONG
Variable of type ULONG that specifies flags that control behavior. The following flags are valid.
WAB_CONTEXT_ADRLIST
Set when the WAB calls Initialize prior to invoking your IContextMenu Interface methods. This flag indicates that lpv contains a pointer to an ADRLIST structure. The ADRLIST structure contains one or more entries, each corresponding to a selected item in the WAB user interface. To retrieve and use this ADRLIST, cast lpv to an LPADRLIST. You can also use ulFlags to determine that WABEXTDISPLAY is being used to initialize an IContextMenu Interface operation. If ulFlags does not contain this flag, you can safely assume that the structure is being used for a IShellPropSheetExt Interface action.
WAB_DISPLAY_LDAPURL
Indicates that lpsz contains the LDAP URL that is currently being displayed. Sometimes the WAB will display a property sheet on a contact represented by a LDAP URL. While the contact to which the LDAP URL points will be wrapped into a WAB object and placed in lpPropObj, the property sheet may access the URL directly.
lpv
Type: LPVOID
Pointer that specifies miscellaneous information that is passed to your application. The current flags identify the information being represented. If ulFlags is set to WAB_CONTEXT_ADRLIST, lpv contains a pointer to an ADRLIST. Cast lpv to an ADRLIST to access the contents of the ADRLIST. The lpAdrList->cEntries member contains the number of selected items. The ADRENTRY structures in lpAdrList->aEntries contain SPropValue arrays with all of the properties pertaining to each selected item.
lpsz
Type: LPTSTR
Variable of type LPTSTR that specifies a string used for passing in miscellaneous information to your application. The current flags identify the information being represented. If ulFlags is set to WAB_DISPLAY_LDAPURL, the lpsz member contains a pointer to a NULL terminated string containing the LDAP URL whose properties are being displayed.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional [desktop apps only] |
Minimum supported server | Windows 2000 Server [desktop apps only] |
Header | wabapi.h |