CCF_SNAPIN_PRELOADS clipboard format
The CCF_SNAPIN_PRELOADS clipboard format is introduced in MMC 1.1.
The CCF_SNAPIN_PRELOADS clipboard format is for extension snap-ins that want to be preloaded when their parent is selected but before they are displayed.
Data Format
BOOL. Return TRUE to preload. Return FALSE to not preload.
Remarks
When a console file is saved, MMC stores the state of the tree in the scope pane. It also stores the scope item image and display name for each item that is visible in the scope pane so that the overhead of loading and expanding all snap-ins at console file open is not incurred just for the purpose of that displays the tree in the scope pane. For some items, this can be undesirable. For example, if the name of an item is dynamic based on what computer the console is running on, you want the correct computer name to appear on that item when a user opens the console file on another computer. In this case, you can implement this clipboard format in a snap-in to tell MMC to load that snap-in when its parent is selected and then send that snap-in an MMCN_PRELOAD notification as the snap-in's first notification. The snap-in can handle this notification in its IComponentData::Notify method.
When a console file is saved, MMC calls IDataObject::GetDataHere on each loaded snap-in using the CCF_SNAPIN_PRELOADS clipboard format. If the snap-in handles the CCF_SNAPIN_PRELOADS clipboard format and returns TRUE, MMC calls the IComponentData::Notify method of the snap-in with the MMCN_PRELOAD notification when the snap-in's parent is first visible.
For example, suppose primarysnap returned TRUE for CCF_SNAPIN_PRELOADS. If the .msc file was saved and closed with the following tree in the scope pane, primarysnap would get an MMCN_PRELOAD notification when the .msc file was opened again (because its parent is the console root, which is expanded when the .msc file is opened):
console root
primarysnap
primarysnapitem1
primarysnapitem2
As another example, suppose primarysnap2 returned TRUE for CCF_SNAPIN_PRELOADS. If the .msc file was saved and closed with the following tree in the scope pane with primarysnap2 added beneath primarysnap1, primarysnap2 would get an MMCN_PRELOAD notification when the .msc file was opened again:
console root
primarysnap1
primarysnap2
primarysnap2item1
primarysnap2item2
primarysnap1item1
primarysnap1item2
If the scope pane appeared with primarysnap1 collapsed and the .msc file was saved and closed, primarysnap2 would not get the MMCN_PRELOAD until primarysnap1 was selected in the scope pane:
console root
primarysnap1
Examples
The following code example (with s_cfPreload as the static member holding the clipboard format) handles the CCF_SNAPIN_PRELOADS clipboard format and returns TRUE:
if (cf == s_cfPreload)
{
//
BOOL bPreload = TRUE;
hr = pStream->Write( (PVOID)&bPreload, sizeof(BOOL), NULL );
}
Requirements
Minimum supported client |
Windows Vista |
Minimum supported server |
Windows Server 2008 |
Header |
|