You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: desktop-src/AD/active-directory-users-and-computers-property-sheets.md
+8-8
Original file line number
Diff line number
Diff line change
@@ -106,19 +106,19 @@ This documentation assumes that the reader is familiar with COM operation and co
106
106
107
107
</dd> </dl>
108
108
109
-
3. Create an instance of the [**CLSID\_DsPropertyPages**](guids-of-user-interface-elements.md) object and obtain the [**IShellExtInit**](https://www.bing.com/search?q=**IShellExtInit**) interface for the object. It is also possible to duplicate the behavior of the **CLSID\_DsPropertyPages** object. For more information, see Duplicating the Behavior of the CLSID\_DsPropertyPages Object.
110
-
4. Initialize the [**CLSID\_DsPropertyPages**](guids-of-user-interface-elements.md) object by calling the [**IShellExtInit::Initialize**](https://www.bing.com/search?q=**IShellExtInit::Initialize**) method. The *pidlFolder* and *hkeyProgID* parameters are not used in this method. The *pdtobj* parameter is the pointer to the data object created in Step 2. When the **IShellExtInit::Initialize** method is called, the **CLSID\_DsPropertyPages** object will save a reference to the data object.
111
-
5. Obtain the [**IShellPropSheetExt**](https://www.bing.com/search?q=**IShellPropSheetExt**) interface for the [**CLSID\_DsPropertyPages**](guids-of-user-interface-elements.md) object and call the [**IShellPropSheetExt::AddPages**](https://www.bing.com/search?q=**IShellPropSheetExt::AddPages**) method. The *lpfnAddPage* parameter is the address of a callback function that you must implement. The format of this function is shown below. If the callback function is declared as a member of a C++ class, the callback function must be declared as **static**. The *lParam* parameter is an application-defined value that can be used to identify the object that implements the callback function. When the **IShellPropSheetExt::AddPages** method is called, the **CLSID\_DsPropertyPages** object will obtain the data from the data object and enumerate the property pages registered for the object display specifiers. The **CLSID\_DsPropertyPages** object will then enumerate the property page objects, calling each object's **IShellPropSheetExt::AddPages** method.
109
+
3. Create an instance of the [**CLSID\_DsPropertyPages**](guids-of-user-interface-elements.md) object and obtain the [**IShellExtInit**](https://msdn.microsoft.com/library/Bb775096(v=VS.85).aspx) interface for the object. It is also possible to duplicate the behavior of the **CLSID\_DsPropertyPages** object. For more information, see Duplicating the Behavior of the CLSID\_DsPropertyPages Object.
110
+
4. Initialize the [**CLSID\_DsPropertyPages**](guids-of-user-interface-elements.md) object by calling the [**IShellExtInit::Initialize**](https://msdn.microsoft.com/library/Bb775094(v=VS.85).aspx) method. The *pidlFolder* and *hkeyProgID* parameters are not used in this method. The *pdtobj* parameter is the pointer to the data object created in Step 2. When the **IShellExtInit::Initialize** method is called, the **CLSID\_DsPropertyPages** object will save a reference to the data object.
111
+
5. Obtain the [**IShellPropSheetExt**](https://msdn.microsoft.com/library/Bb774880(v=VS.85).aspx) interface for the [**CLSID\_DsPropertyPages**](guids-of-user-interface-elements.md) object and call the [**IShellPropSheetExt::AddPages**](https://msdn.microsoft.com/library/Bb774878(v=VS.85).aspx) method. The *lpfnAddPage* parameter is the address of a callback function that you must implement. The format of this function is shown below. If the callback function is declared as a member of a C++ class, the callback function must be declared as **static**. The *lParam* parameter is an application-defined value that can be used to identify the object that implements the callback function. When the **IShellPropSheetExt::AddPages** method is called, the **CLSID\_DsPropertyPages** object will obtain the data from the data object and enumerate the property pages registered for the object display specifiers. The **CLSID\_DsPropertyPages** object will then enumerate the property page objects, calling each object's **IShellPropSheetExt::AddPages** method.
6. Each page added by the property page objects will result in your callback function being called with the handle to the property page and the application-defined value. Your callback function must store each property page handle that is passed. When the [**CLSID\_DsPropertyPages**](guids-of-user-interface-elements.md) object's [**IShellPropSheetExt::AddPages**](https://www.bing.com/search?q=**IShellPropSheetExt::AddPages**) method returns, all pages will have been added via your callback function.
120
-
7. Fill in a [**PROPSHEETHEADER**](https://www.bing.com/search?q=**PROPSHEETHEADER**) structure to display the property sheet. The **phpage** member receives a pointer to an array of page handles that were collected by your callback function. The **nPages** member receives the number of pages in the page handle array.
121
-
8. Display the property sheet by calling the [**PropertySheet**](https://www.bing.com/search?q=**PropertySheet**) function.
119
+
6. Each page added by the property page objects will result in your callback function being called with the handle to the property page and the application-defined value. Your callback function must store each property page handle that is passed. When the [**CLSID\_DsPropertyPages**](guids-of-user-interface-elements.md) object's [**IShellPropSheetExt::AddPages**](https://msdn.microsoft.com/library/Bb774878(v=VS.85).aspx) method returns, all pages will have been added via your callback function.
120
+
7. Fill in a [**PROPSHEETHEADER**](https://msdn.microsoft.com/library/Bb774546(v=VS.85).aspx) structure to display the property sheet. The **phpage** member receives a pointer to an array of page handles that were collected by your callback function. The **nPages** member receives the number of pages in the page handle array.
121
+
8. Display the property sheet by calling the [**PropertySheet**](https://msdn.microsoft.com/library/Bb760811(v=VS.85).aspx) function.
122
122
123
123
If the data in any page is changed and the **OK** or **Apply** buttons are clicked, the window identified by the **hwndParentSheet** member of the [**PROPSHEETCFG**](propsheetcfg.md) structure will receive a [**WM\_ADSPROP\_NOTIFY\_CHANGE**](wm-adsprop-notify-change.md) message. This message is strictly a notification and requires no specific action.
124
124
@@ -134,8 +134,8 @@ In some cases, the existing property sheets will need to display a secondary pro
134
134
2. Convert each class identifier string into a **CLSID** using the [**CLSIDFromString**](https://msdn.microsoft.com/en-us/library/ms683917(v=VS.85).aspx) function.
135
135
3. Sort the extension class identifiers by the number that precedes each class identifier string in the attribute value. If two numbers are identical, sort the class identifiers in the order that the attribute values are obtained from the Active Directory server.
136
136
4. Enumerate the extension class identifiers, creating an instance of each extension.
137
-
5. For each extension, in the order sorted above, call the extension's [**IShellExtInit::Initialize**](https://www.bing.com/search?q=**IShellExtInit::Initialize**) with the same information described in Step 4 of the Hosting an Active Directory Users and Computers Property Sheet procedure.
138
-
6. For each extension, in the order sorted above, call the extension's [**IShellPropSheetExt::AddPages**](https://www.bing.com/search?q=**IShellPropSheetExt::AddPages**) with the same information described in Step 5 of the Hosting an Active Directory Users and Computers Property Sheet procedure.
137
+
5. For each extension, in the order sorted above, call the extension's [**IShellExtInit::Initialize**](https://msdn.microsoft.com/library/Bb775094(v=VS.85).aspx) with the same information described in Step 4 of the Hosting an Active Directory Users and Computers Property Sheet procedure.
138
+
6. For each extension, in the order sorted above, call the extension's [**IShellPropSheetExt::AddPages**](https://msdn.microsoft.com/library/Bb774878(v=VS.85).aspx) with the same information described in Step 5 of the Hosting an Active Directory Users and Computers Property Sheet procedure.
139
139
140
140
If possible, use the [**CLSID\_DsPropertyPages**](guids-of-user-interface-elements.md) object to create the pages rather than do this manually. The **CLSID\_DsPropertyPages** has been optimized and will correctly handle failure cases, such as when no display specifier is available for the current locale. Also, the **CLSID\_DsPropertyPages** object may change in the future, which means your property sheets may not exactly match those displayed by the Active Directory Users and Computers MMC snap-in.
Copy file name to clipboardexpand all lines: desktop-src/AD/binding-to-the-global-catalog.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -71,7 +71,7 @@ This filter uses the **LDAP\_MATCHING\_RULE\_BIT\_AND** matching rule operator (
71
71
72
72
The parent of the **nTDSDSA** object is the server object, and the **dNSHostName** property of the server object is the DNS name of the Global Catalog server.
73
73
74
-
You cannot use \#define constants such as **NTDSDSA\_OPT\_IS\_GC** and **LDAP\_MATCHING\_RULE\_BIT\_AND** directly in a search filter string. However, you could use these constants as arguments to a function such as [**swprintf\_s**](https://www.bing.com/search?q=**swprintf\_s**) to insert the constant values into a filter string.
74
+
You cannot use \#define constants such as **NTDSDSA\_OPT\_IS\_GC** and **LDAP\_MATCHING\_RULE\_BIT\_AND** directly in a search filter string. However, you could use these constants as arguments to a function such as [**swprintf\_s**](https://msdn.microsoft.com/library/ms647550(v=VS.85).aspx) to insert the constant values into a filter string.
75
75
76
76
The global catalog does not represent the entire forest tree structure. For example, you might expect that the following code example would enumerate all of the domains in the forest and all child objects of each domain. In reality, what it actually does is enumerate all of the domains in the forest, but none of the enumerated domain objects contain any children. This is a limitation of the global catalog.
Copy file name to clipboardexpand all lines: desktop-src/AD/context-menus-for-use-with-display-specifiers.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ ms.date: 05/31/2018
17
17
18
18
# Context Menus for Use with Display Specifiers
19
19
20
-
The Active Directory administrative MMC snap-ins and Windows 2000 shell provide a mechanism to add an item to the context menu displayed for objects in Active Directory Domain Services. A context menu item can be added by implementing an COM in-proc server known as a *context menu extension*. A context menu item can also be added that invokes any file started with the [**ShellExecute**](https://www.bing.com/search?q=**ShellExecute**) API, such as an application or webpage URL. This is known as a *static context menu item*.
20
+
The Active Directory administrative MMC snap-ins and Windows 2000 shell provide a mechanism to add an item to the context menu displayed for objects in Active Directory Domain Services. A context menu item can be added by implementing an COM in-proc server known as a *context menu extension*. A context menu item can also be added that invokes any file started with the [**ShellExecute**](https://msdn.microsoft.com/library/Bb762153(v=VS.85).aspx) API, such as an application or webpage URL. This is known as a *static context menu item*.
21
21
22
22
## Developer Audience
23
23
@@ -29,13 +29,13 @@ A context menu extension is a COM in-proc server that implements certain interfa
29
29
30
30
**To create and install a context menu extension**
31
31
32
-
1. Create the context menu extension DLL. A context menu extension is a COM in-proc server that, at a minimum, implements the [**IShellExtInit**](https://www.bing.com/search?q=**IShellExtInit**) and [**IContextMenu**](https://www.bing.com/search?q=**IContextMenu**) interfaces. For more information, see [Implementing the Context Menu COM Object](implementing-the-context-menu-com-object.md).
32
+
1. Create the context menu extension DLL. A context menu extension is a COM in-proc server that, at a minimum, implements the [**IShellExtInit**](https://msdn.microsoft.com/library/Bb775096(v=VS.85).aspx) and [**IContextMenu**](https://msdn.microsoft.com/library/Bb776095(v=VS.85).aspx) interfaces. For more information, see [Implementing the Context Menu COM Object](implementing-the-context-menu-com-object.md).
33
33
2. Install the context menu sheet extension on computers where the context menu extension is used. This is accomplished by creating a Microsoft Windows Installer package for the context menu extension DLL and deploying the package appropriately using the group policy. For more information, see [Distributing User Interface Components](distributing-user-interface-components.md).
34
34
3. Register the context menu extension in the Windows registry and with Active Directory Domain Services. For more information, see [Registering the Context Menu COM Object in a Display Specifier](registering-the-context-menu-com-object-in-a-display-specifier.md).
35
35
36
36
## Extending the Context Menu With a Static Context Menu Item
37
37
38
-
A static context menu item can be used to invoke any file started with the [**ShellExecute**](https://www.bing.com/search?q=**ShellExecute**) API, such as an application or webpage URL. To accomplished this, the static context menu item for a particular object class must be registered so that the static context menu item is added to the context menu of objects of that class. For more information, see [Registering a Static Context Menu Item](registering-a-static-context-menu-item.md).
38
+
A static context menu item can be used to invoke any file started with the [**ShellExecute**](https://msdn.microsoft.com/library/Bb762153(v=VS.85).aspx) API, such as an application or webpage URL. To accomplished this, the static context menu item for a particular object class must be registered so that the static context menu item is added to the context menu of objects of that class. For more information, see [Registering a Static Context Menu Item](registering-a-static-context-menu-item.md).
Copy file name to clipboardexpand all lines: desktop-src/AD/cqpm-help.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ Not used.
41
41
*lParam*
42
42
</dt> <dd>
43
43
44
-
Pointer to a [**HELPINFO**](https://www.bing.com/search?q=**HELPINFO**) structure that contains additional data about the menu item, control, dialog box, or window for which context-sensitive help is requested.
44
+
Pointer to a [**HELPINFO**](https://msdn.microsoft.com/library/Bb773313(v=VS.85).aspx) structure that contains additional data about the menu item, control, dialog box, or window for which context-sensitive help is requested.
45
45
46
46
</dd> </dl>
47
47
@@ -68,7 +68,7 @@ The return value for this message is ignored.
The following C++ code example can be used to implement the [**IShellPropSheetExt**](https://www.bing.com/search?q=**IShellPropSheetExt**) methods.
135
+
The following C++ code example can be used to implement the [**IShellPropSheetExt**](https://msdn.microsoft.com/library/Bb774880(v=VS.85).aspx) methods.
|**CLSID\_DsFolderProperties**| Reserved. Declared in Dsclient.h. |
29
-
|**CLSID\_DsPropertyPages**| This object provides the [**IShellExtInit**](https://www.bing.com/search?q=**IShellExtInit**), [**IShellPropSheetExt**](https://www.bing.com/search?q=**IShellPropSheetExt**), and [**IContextMenu**](https://www.bing.com/search?q=**IContextMenu**) interfaces for use with system-supplied directory service objects. Declared in Dsclient.h. |
29
+
|**CLSID\_DsPropertyPages**| This object provides the [**IShellExtInit**](https://msdn.microsoft.com/library/Bb775096(v=VS.85).aspx), [**IShellPropSheetExt**](https://msdn.microsoft.com/library/Bb774880(v=VS.85).aspx), and [**IContextMenu**](https://msdn.microsoft.com/library/Bb776095(v=VS.85).aspx) interfaces for use with system-supplied directory service objects. Declared in Dsclient.h. |
0 commit comments