COccManager Class
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at COccManager Class.
Manages various custom control sites; implemented by COleControlContainer
and COleControlSite
objects.
Syntax
class COccManager : public CNoTrackObject
Members
Public Methods
Name | Description |
---|---|
COccManager::CreateContainer | Creates a COleContainer object. |
COccManager::CreateDlgControls | Creates ActiveX controls, hosted by the associated COleContainer object. |
COccManager::CreateSite | Creates a COleClientSite object. |
COccManager::GetDefBtnCode | Retrieves the code of the default button. |
COccManager::IsDialogMessage | Determines the target of a dialog message. |
COccManager::IsLabelControl | Determines if the specified control is a label control. |
COccManager::IsMatchingMnemonic | Determines if the current mnemonic matches the mnemonic of the specified control. |
COccManager::OnEvent | Attempts to handle the specified event. |
COccManager::PostCreateDialog | Frees resources allocated during dialog creation. |
COccManager::PreCreateDialog | Processes a dialog template for ActiveX controls. |
COccManager::SetDefaultButton | Toggles the default state of the specified control. |
COccManager::SplitDialogTemplate | Separates any existing ActiveX controls from common controls in the specified dialog template. |
Remarks
The base class, CNoTrackObject, is an undocumented base class (located in AFXTLS.H). Designed for use by the MFC framework, classes derived from the CNoTrackObject class are exempt from memory leak detection. It is not recommended that you derive directly from CNoTrackObject.
Inheritance Hierarchy
CNoTrackObject
COccManager
Requirements
Header: afxocc.h
COccManager::CreateContainer
Called by the framework to create a control container.
virtual COleControlContainer* CreateContainer(CWnd* pWnd);
Parameters
pWnd
A pointer to the window object associated with the custom site container.
Return Value
A pointer to the newly created container; otherwise NULL.
Remarks
For more information on creating custom sites, see COleControlContainer::AttachControlSite.
COccManager::CreateDlgControls
Call this function to create ActiveX controls specified by the pOccDialogInfo
parameter.
virtual BOOL CreateDlgControls(
CWnd* pWndParent,
LPCTSTR lpszResourceName,
_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
virtual BOOL CreateDlgControls(
CWnd* pWndParent,
void* lpResource,
_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
Parameters
pWndParent
A pointer to the parent of the dialog object.
lpszResourceName
The name of the resource being created.
pOccDialogInfo
A pointer to the dialog template used to create the dialog object.
lpResource
A pointer to a resource.
Return Value
Nonzero if the control was created successfully; otherwise zero.
COccManager::CreateSite
Called by the framework to create a control site, hosted by the container pointed to by pCtrlCont
.
virtual COleControlSite* CreateSite(COleControlContainer* pCtrlCont);
Parameters
pCtrlCont
A pointer to the control container hosting the new control site.
Return Value
A pointer to the newly created control site.
Remarks
Override this function to create a custom control site, using your COleControlSite-derived class.
Each control container can host multiple sites. Create additional sites with multiple calls to CreateSite
.
COccManager::GetDefBtnCode
Call this function to determine if the control is a default push button.
static DWORD AFX_CDECL GetDefBtnCode(CWnd* pWnd);
Parameters
pWnd
The window object containing the button control.
Return Value
One of the following values:
DLGC_DEFPUSHBUTTON Control is the default button in the dialog.
DLGC_UNDEFPUSHBUTTON Control is not the default button in the dialog.
0 Control is not a button.
COccManager::IsDialogMessage
Called by the framework to determine whether a message is intended for the specified dialog box and, if it is, processes the message.
virtual BOOL IsDialogMessage(
CWnd* pWndDlg,
LPMSG lpMsg);
Parameters
pWndDlg
A pointer to the intended target dialog of the message.
lpMsg
A pointer to an MSG
structure that contains the message to be checked.
Return Value
Nonzero if the message is processed; otherwise zero.
Remarks
The default behavior of IsDialogMessage
is to check for keyboard messages and convert them into selections for the corresponding dialog box. For example, the TAB key, when pressed, selects the next control or group of controls.
Override this function to provide custom behavior for messages sent to the specified dialog.
COccManager::IsLabelControl
Call this function to determine if the specified control is a label control.
static BOOL AFX_CDECL IsLabelControl(CWnd* pWnd);
static BOOL AFX_CDECL IsLabelControl(COleControlSiteOrWnd* pWnd);
```
### Parameters
`pWnd`
A pointer to the window containing the control.
### Return Value
Nonzero if the control is a label; otherwise zero
### Remarks
A label control is one that acts like a label for whatever control is next in the ordering.
## <a name="coccmanager__ismatchingmnemonic"></a> COccManager::IsMatchingMnemonic
Call this function to determine if the current mnemonic matches that represented by the control.
static BOOL AFX_CDECL IsMatchingMnemonic( CWnd* pWnd,
LPMSG lpMsg);
static BOOL AFX_CDECL IsMatchingMnemonic( COleControlSiteOrWnd* pWnd,
LPMSG lpMsg);
### Parameters
`pWnd`
A pointer to the window containing the control.
`lpMsg`
A pointer to the message containing the mnemonic to match.
### Return Value
Nonzero if the mnemonic matches the control; otherwise zero
### Remarks
## <a name="coccmanager__onevent"></a> COccManager::OnEvent
Called by the framework to handle the specified event.
virtual BOOL OnEvent( CCmdTarget* pCmdTarget,
UINT idCtrl,
AFX_EVENT* pEvent,
AFX_CMDHANDLERINFO* pHandlerInfo);
### Parameters
*pCmdTarget*
A pointer to the `CCmdTarget` object attempting to handle the event
`idCtrl`
The resource ID of the control.
`pEvent`
The event being handled.
`pHandlerInfo`
If not **NULL**, `OnEvent` fills in the **pTarget** and **pmf** members of the **AFX_CMDHANDLERINFO** structure instead of dispatching the command. Typically, this parameter should be **NULL**.
### Return Value
Nonzero if the event was handled, otherwise zero.
### Remarks
Override this function to customize the default event-handling process.
## <a name="coccmanager__precreatedialog"></a> COccManager::PreCreateDialog
Called by the framework to process a dialog template for ActiveX controls before creating the actual dialog box.
virtual const DLGTEMPLATE* PreCreateDialog( _AFX_OCC_DIALOG_INFO* pOccDialogInfo,
const DLGTEMPLATE* pOrigTemplate);
### Parameters
`pOccDialogInfo`
An **_AFX_OCC_DIALOG_INFO** structure containing information on the dialog template and any ActiveX controls hosted by the dialog.
*pOrigTemplate*
A pointer to the dialog template to be used in creating the dialog box.
### Return Value
A pointer to a dialog template structure used to create the dialog box.
### Remarks
The default behavior makes a call to `SplitDialogTemplate`, determining if there are any ActiveX controls present and then returns the resultant dialog template.
Override this function to customize the process of creating a dialog box hosting ActiveX controls.
## <a name="coccmanager__postcreatedialog"></a> COccManager::PostCreateDialog
Called by the framework to free memory allocated for the dialog template.
virtual void PostCreateDialog(_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
### Parameters
`pOccDialogInfo`
An **_AFX_OCC_DIALOG_INFO** structure containing information on the dialog template and any ActiveX controls hosted by the dialog.
### Remarks
This memory was allocated by a call to `SplitDialogTemplate`, and was used for any hosted ActiveX controls in the dialog box.
Override this function to customize the process of cleaning up any resources used by the dialog box object.
## <a name="coccmanager__setdefaultbutton"></a> COccManager::SetDefaultButton
Call this function to set the control as the default button.
static void AFX_CDECL SetDefaultButton( CWnd* pWnd,
BOOL bDefault);
### Parameters
`pWnd`
A pointer to the window containing the control.
`bDefault`
Nonzero if the control should become the default button; otherwise zero.
### Return Value
Nonzero if successful; otherwise zero.
### Remarks
> [!NOTE]
> The control must have the **OLEMISC_ACTSLIKEBUTTON** status bit set. For more information on **OLEMISC** flags, see the [OLEMISC](https://msdn.microsoft.com/library/windows/desktop/ms678497) topic in the [!INCLUDE[winSDK](../Token/winSDK_md.md)].
## <a name="coccmanager__splitdialogtemplate"></a> COccManager::SplitDialogTemplate
Called by the framework to split the ActiveX controls from common dialog controls.
virtual DLGTEMPLATE* SplitDialogTemplate( const DLGTEMPLATE* pTemplate,
DLGITEMTEMPLATE** ppOleDlgItems);
### Parameters
`pTemplate`
A pointer to the dialog template to be examined.
`ppOleDlgItems`
A list of pointers to dialog box items that are ActiveX controls.
### Return Value
A pointer to a dialog template structure containing only non-ActiveX controls. If no ActiveX controls are present, **NULL** is returned.
### Remarks
If any ActiveX controls are found, the template is analyzed and a new template, containing only non-ActiveX controls, is created. Any ActiveX controls found during this process are added to `ppOleDlgItems`.
If there are no ActiveX controls in the template, **NULL** is returned *.*
> [!NOTE]
> Memory allocated for the new template is freed in the `PostCreateDialog` function.
Override this function to customize this process.
## See Also
[Hierarchy Chart](../Topic/Hierarchy%20Chart.md)
[COleControlSite Class](../Topic/COleControlSite%20Class.md)
[COleControlContainer Class](../Topic/COleControlContainer%20Class.md)