Ejemplo ATLFire Attributes: muestra la generación de un control con ventana

Actualización: noviembre 2007

El ejemplo con atributos ATLFire es un control ActiveX que muestra cómo generar un control con ventanas mediante ATL asignando al indicador m_bWindowedOnly el valor TRUE. Asimismo, muestra qué se debe hacer en el código de dibujo de MFC para convertirlo en código Win32. El ejemplo utiliza la capacidad de ATL para usar cuadros de diálogo Win32 y hojas de propiedad y muestra cómo utilizar un control Win32 de fichas en un control ActiveX. El ejemplo también muestra el uso de varias macros de ATL.

El ejemplo ATLFire constituye la versión sin atributos de este ejemplo.

Nota de seguridad:

Este código de ejemplo se proporciona para ilustrar un concepto y no debe utilizarse en aplicaciones o sitios Web, ya que quizás no ilustre las prácticas de codificación más seguras. Microsoft no asume ninguna responsabilidad por daños incidentales o consecuentes en caso de que el código de ejemplo se utilice para propósitos distintos de aquellos para los que se concibió.

Para obtener ejemplos e instrucciones para su instalación:

  • En el menú Ayuda de Visual Studio, haga clic en Ejemplos.

    Para obtener más información, vea Localizar archivos de ejemplo.

  • La lista de ejemplos completa con la versión más reciente está disponible en línea en la página Visual Studio 2008 Samples.

  • También encontrará ejemplos en el disco duro de su equipo. De manera predeterminada, los ejemplos y el archivo Léame se copian en una carpeta bajo \Archivos de programa\Visual Studio 9.0\Samples\. Para las versiones Express de Visual Studio, todos los ejemplos están en línea.

Generar y ejecutar el ejemplo

Para generar y ejecutar este ejemplo

  1. Abra el archivo de solución ATLFire.sln.

  2. En el menú Generar, haga clic en Generar.

  3. Una vez generado el ejemplo, abra FireTabCtrl.htm en el explorador web y pruebe los diversos tipos de activación que simula el ejemplo.

Puede probar el control ATLFire en el ActiveX Control Test Container. Para obtener más detalles sobre cómo obtener acceso a Test Container y utilizarlo para probar un control, vea Probar propiedades y eventos con Test Container.

Atributos

En este ejemplo se utilizan los atributos siguientes:

coclass, dual, emitidl, helpstring, id, in, module, object, out, pointer_default, progid, propget, propput, registration_script, retval, support_error_info, threading, uuid, version

Clases y palabras clave

El ejemplo utiliza las siguientes clases de ATL:

CComObjectRootEx, CComCoClass, CComControl, IDispatchImpl, IProvideClassInfo2Impl, IPersistStreamInitImpl, IPersistStorageImpl, IPersistPropertyBagImpl, IPerPropertyBrowsingImpl, IQuickActivateImpl, IObjectSafetyImpl, IOleControlImpl, IOleObjectImpl, IOleInPlaceActiveObjectImpl, IViewObjectExImpl, IOleInPlaceObjectWindowlessImpl, IDataObjectImpl, ISupportErrorInfo, ISpecifyPropertyPagesImpl, IConnectionPointContainerImpl, IPropertyNotifySinkCP, CDialogImpl

En este ejemplo se utilizan las siguientes palabras clave:

_ASSERTE; _itot; _tcstol; ALT_MSG_MAP; Apply; ATLTRACE; BEGIN_COM_MAP; BEGIN_CONNECTION_POINT_MAP; BEGIN_MSG_MAP; BEGIN_OBJECT_MAP; BEGIN_PROPERTY_MAP; CComCoClass; CComModule::GetClassObject; CComModule::GetLockCount; CComModule::Init; CComModule::RegisterServer; CComModule::Term; CComModule::UnregisterServer; CComObjectRootEx; CDialogImpl; ClientToScreen; COM_INTERFACE_ENTRY; COM_INTERFACE_ENTRY_IMPL; COM_INTERFACE_ENTRY_IMPL_IID; COMMAND_HANDLER; COMMAND_ID_HANDLER; CONNECTION_POINT_ENTRY; CPropDlg::DoModal; CreateBitmap; CreatePalette; DECLARE_REGISTRY_RESOURCEID; DeleteDC; DeleteObject; DestroyMenu; DisableThreadLibraryCalls; EnableWindow; END_COM_MAP; END_CONNECTION_POINT_MAP; END_MSG_MAP; END_OBJECT_MAP; END_PROPERTY_MAP; EndDialog; FillRect; FireOnChanged; GetActiveWindow; GetClientRect; GetDlgItem; GetDlgItemText; GetModuleInstance; GetWindowRect; IConnectionPointContainerImpl; IDataObjectImpl; IDispatchImpl; InitFire; InlineIsEqualGUID; IObjectSafetyImpl; IOleControlImpl; IOleInPlaceActiveObjectImpl; IOleInPlaceObjectWindowlessImpl; IOleObjectImpl; IPersistPropertyBagImpl; IPersistStorageImpl; IPersistStreamInitImpl; IPropertyNotifySinkCP; IProvideClassInfo2Impl; IQuickActivateImpl; ISpecifyPropertyPagesImpl; ISupportErrorInfo; IViewObjectExImpl; memcpy; MESSAGE_HANDLER; MessageBox; NOTIFY_CODE_HANDLER; OBJECT_ENTRY; OnActivate; OnApply; OnCancel; OnCreate; OnDestroy; OnEraseBackground; OnInitDialog; OnOK; OnPaint; OnPaletteChanged; OnProperties; OnPropertyChanged; OnQueryNewPalette; OnRButtonDown; OnSelChanged; OnSelChanging; OnSize; OnTimer; PAINTSTRUCT; PeekMessage; PROP_ENTRY; RealizePalette; SelectObject; SendMessage; SetTimer; SetWindowPos; TrackPopupMenuEx; UnregisterClass

Nota:

Algunos ejemplos, como éste, no se han modificado para reflejar los cambios en los asistentes, las bibliotecas y el compilador de Visual C++, pero, aun así, muestran cómo realizar la tarea deseada.

Vea también

Otros recursos

Ejemplos de atributos ATL