205 lines
8.1 KiB
C
205 lines
8.1 KiB
C
//+----------------------------------------------------------------------------
|
|
//
|
|
// Windows NT Active Directory Service Property Pages
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992-1999.
|
|
//
|
|
// File: adsprop.h
|
|
//
|
|
// Contents: Functions and definitions used in the creation of AD property
|
|
// sheets.
|
|
//
|
|
// History: 28-Sept-98 Eric Brown created.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _ADSPROP_H_
|
|
#define _ADSPROP_H_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define WM_ADSPROP_NOTIFY_PAGEINIT (WM_USER + 1101) // where LPARAM is the PADSPROPINITPARAMS pointer.
|
|
#define WM_ADSPROP_NOTIFY_PAGEHWND (WM_USER + 1102) // where WPARAM => page's HWND and LPARAM => page's Title
|
|
#define WM_ADSPROP_NOTIFY_CHANGE (WM_USER + 1103) // used to send a change notification to a parent sheet
|
|
#define WM_ADSPROP_NOTIFY_APPLY (WM_USER + 1104) // pages send this to the notification object.
|
|
#define WM_ADSPROP_NOTIFY_SETFOCUS (WM_USER + 1105) // used internally by the notification object.
|
|
#define WM_ADSPROP_NOTIFY_FOREGROUND (WM_USER + 1106) // used internally by the notification object.
|
|
#define WM_ADSPROP_NOTIFY_EXIT (WM_USER + 1107) // sent on page release
|
|
#define WM_ADSPROP_NOTIFY_ERROR (WM_USER + 1110) // used to send the notification object an error message
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Structure: ADSPROPINITPARAMS
|
|
//
|
|
// Usage: Used to pass page initialization information to new pages from
|
|
// the notify object.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef struct _ADSPROPINITPARAMS {
|
|
DWORD dwSize; // Set this to the size of the struct.
|
|
DWORD dwFlags; // Reserved for future use.
|
|
HRESULT hr; // If this is non-zero, then the others
|
|
IDirectoryObject * pDsObj; // should be ignored.
|
|
LPWSTR pwzCN;
|
|
PADS_ATTR_INFO pWritableAttrs;
|
|
} ADSPROPINITPARAMS, * PADSPROPINITPARAMS;
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Structure: ADSPROPERROR
|
|
//
|
|
// Usage: Used to pass page error information to the notify object
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
typedef struct _ADSPROPERROR {
|
|
HWND hwndPage; // The HWND of the page that had the error
|
|
PWSTR pszPageTitle; // The title of the page that had the error
|
|
PWSTR pszObjPath; // Path to the object that the error occurred on
|
|
PWSTR pszObjClass; // Class of the object that the error occurred on
|
|
HRESULT hr; // If this is non-zero, then the others
|
|
// pszError will be ignored
|
|
PWSTR pszError; // An error message. Used only if hr is zero
|
|
} ADSPROPERROR, * PADSPROPERROR;
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Function: ADsPropCreateNotifyObj
|
|
//
|
|
// Synopsis: Checks to see if the notification window/object exists for this
|
|
// sheet instance and if not creates it.
|
|
//
|
|
// Arguments: [pAppThdDataObj] - the unmarshalled data object pointer.
|
|
// [pwzADsObjName] - object path name.
|
|
// [phNotifyObj] - to return the notificion window handle.
|
|
//
|
|
// Returns: HRESULTs.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
STDAPI
|
|
ADsPropCreateNotifyObj(LPDATAOBJECT pAppThdDataObj, PWSTR pwzADsObjName,
|
|
HWND * phNotifyObj);
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Function: ADsPropGetInitInfo
|
|
//
|
|
// Synopsis: Pages call this at their init time to retreive DS object info.
|
|
//
|
|
// Arguments: [hNotifyObj] - the notificion window handle.
|
|
// [pInitParams] - struct filled in with DS object info. This
|
|
// struct must be allocated by the caller before
|
|
// the call.
|
|
//
|
|
// Returns: FALSE if the notify window has gone away for some reason or
|
|
// if the parameters are invalid.
|
|
//
|
|
// Notes: This call results in the sending of the
|
|
// WM_ADSPROP_NOTIFY_PAGEINIT message to the notify window.
|
|
// pInitParams->pWritableAttrs can be NULL if there are no
|
|
// writable attributes.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
STDAPI_(BOOL)
|
|
ADsPropGetInitInfo(HWND hNotifyObj, PADSPROPINITPARAMS pInitParams);
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Function: ADsPropSetHwndWithTitle
|
|
//
|
|
// Synopsis: Pages call this at their dialog init time to send their hwnd
|
|
// to the Notify object.
|
|
//
|
|
// Arguments: [hNotifyObj] - the notificion window handle.
|
|
// [hPage] - the page's window handle.
|
|
// [ptzTitle] - the page's title
|
|
//
|
|
// Returns: FALSE if the notify window has gone away for some reason.
|
|
//
|
|
// Notes: Sends the WM_ADSPROP_NOTIFY_PAGEHWND message to the notify
|
|
// window. Use this function instead of ADsPropSetHwnd for
|
|
// multi-select property pages
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
STDAPI_(BOOL)
|
|
ADsPropSetHwndWithTitle(HWND hNotifyObj, HWND hPage, PTSTR ptzTitle);
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// Function: ADsPropSetHwnd
|
|
//
|
|
// Synopsis: Pages call this at their dialog init time to send their hwnd
|
|
// to the Notify object.
|
|
//
|
|
// Arguments: [hNotifyObj] - the notificion window handle.
|
|
// [hPage] - the page's window handle.
|
|
//
|
|
// Returns: FALSE if the notify window has gone away for some reason.
|
|
//
|
|
// Notes: Sends the WM_ADSPROP_NOTIFY_PAGEHWND message to the notify
|
|
// window.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
STDAPI_(BOOL)
|
|
ADsPropSetHwnd(HWND hNotifyObj, HWND hPage);
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// function: ADsPropCheckIfWritable
|
|
//
|
|
// Synopsis: See if the attribute is writable by checking if it is in
|
|
// the allowedAttributesEffective array.
|
|
//
|
|
// Arguments: [pwzAttr] - the attribute name.
|
|
// [pWritableAttrs] - the array of writable attributes.
|
|
//
|
|
// Returns: FALSE if the attribute name is not found in the writable-attrs
|
|
// array or if the array pointer is NULL.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
STDAPI_(BOOL)
|
|
ADsPropCheckIfWritable(const PWSTR pwzAttr, const PADS_ATTR_INFO pWritableAttrs);
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// function: ADsPropSendErrorMessage
|
|
//
|
|
// Synopsis: Adds an error message to a list which is presented when
|
|
// ADsPropShowErrorDialog is called
|
|
//
|
|
// Arguments: [hNotifyObj] - the notificion window handle.
|
|
// [pError] - the error structure
|
|
//
|
|
// Returns: FALSE if the notify window has gone away for some reason.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
STDAPI_(BOOL)
|
|
ADsPropSendErrorMessage(HWND hNotifyObj, PADSPROPERROR pError);
|
|
|
|
//+----------------------------------------------------------------------------
|
|
//
|
|
// function: ADsPropShowErrorDialog
|
|
//
|
|
// Synopsis: Presents an error dialog with the error messages accumulated
|
|
// through calls to ADsPropSendErrorMessage
|
|
//
|
|
// Arguments: [hNotifyObj] - the notificion window handle.
|
|
// [hPage] - the property page window handle.
|
|
//
|
|
// Returns: FALSE if the notify window has gone away for some reason.
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
STDAPI_(BOOL)
|
|
ADsPropShowErrorDialog(HWND hNotifyObj, HWND hPage);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif // __cplusplus
|
|
|
|
#endif // _ADSPROP_H_
|