COMPAT enumeration

The following flags determine the behavior of registered Microsoft ActiveX controls.

Syntax

typedef enum  { 
  COMPAT_AGGREGATE                         = 0x00000001,
  COMPAT_NO_OBJECTSAFETY                   = 0x00000002,
  COMPAT_NO_PROPNOTIFYSINK                 = 0x00000004,
  COMPAT_SEND_SHOW                         = 0x00000008,
  COMPAT_SEND_HIDE                         = 0x00000010,
  COMPAT_ALWAYS_INPLACEACTIVATE            = 0x00000020,
  COMPAT_NO_SETEXTENT                      = 0x00000040,
  COMPAT_NO_UIACTIVATE                     = 0x00000080,
  COMPAT_NO_QUICKACTIVATE                  = 0x00000100,
  COMPAT_NO_BINDF_OFFLINEOPERATION         = 0x00000200,
  COMPAT_EVIL_DONT_LOAD                    = 0x00000400,
  COMPAT_PROGSINK_UNTIL_ACTIVATED          = 0x00000800,
  COMPAT_USE_PROPBAG_AND_STREAM            = 0x00001000,
  COMPAT_DISABLEWINDOWLESS                 = 0x00002000,
  COMPAT_SETWINDOWRGN                      = 0x00004000,
  COMPAT_PRINTPLUGINSITE                   = 0x00008000,
  COMPAT_INPLACEACTIVATEEVENWHENINVISIBLE  = 0x00010000,
  COMPAT_NEVERFOCUSSABLE                   = 0x00020000,
  COMPAT_ALWAYSDEFERSETWINDOWRGN           = 0x00040000,
  COMPAT_INPLACEACTIVATESYNCHRONOUSLY      = 0x00080000,
  COMPAT_NEEDSZEROBASEDDRAWRECT            = 0x00100000,
  COMPAT_HWNDPRIVATE                       = 0x00200000,
  COMPAT_SECURITYCHECKONREDIRECT           = 0x00400000,
  COMPAT_SAFEFOR_LOADING                   = 0x00800000
} COMPAT;

Constants

  • COMPAT_AGGREGATE
    This control is aggregated.

  • COMPAT_NO_OBJECTSAFETY
    This control is not safe for scripting, even if it implements IObjectSafety.

  • COMPAT_NO_PROPNOTIFYSINK
    A property notify sink is not attached to this control.

  • COMPAT_SEND_SHOW
    For this control, IOleObject::DoVerb is called with OLEIVERB_SHOW before IOleObject::DoVerb is called with OLEIVERB_INPLACEACTIVATE.

  • COMPAT_SEND_HIDE
    For this control, IOleObject::DoVerb is called with OLEIVERB_HIDE before IOleInPlaceObject::InPlaceDeactivate is called.

  • COMPAT_ALWAYS_INPLACEACTIVATE
    For this control, IOleObject::DoVerb is called with OLEIVERB_INPLACEACTIVATE.

  • COMPAT_NO_SETEXTENT
    The amount of space required by this control's container is not specified.

  • COMPAT_NO_UIACTIVATE
    This control cannot activate the UI elements of the current document host.

  • COMPAT_NO_QUICKACTIVATE
    This control does not implement IQuickActivate or should not be activated quickly.

  • COMPAT_NO_BINDF_OFFLINEOPERATION
    A cached version of this control is never used.

  • COMPAT_EVIL_DONT_LOAD
    This control is never used.

  • COMPAT_PROGSINK_UNTIL_ACTIVATED
    This control cannot be used for scripting until in-place activation is complete.

  • COMPAT_USE_PROPBAG_AND_STREAM
    Both IPersistPropertyBag::Load and IPersistStreamInit::Load are called when using this control.

  • COMPAT_DISABLEWINDOWLESS
    This control cannot be in-place activated without a window.

  • COMPAT_SETWINDOWRGN
    This control cannot have UI outside of the window.

  • COMPAT_PRINTPLUGINSITE
    This control has printing capabilities that should be used instead of those provided by Internet Explorer.

  • COMPAT_INPLACEACTIVATEEVENWHENINVISIBLE
    This control is in-place activated whether or not it is visible.

  • COMPAT_NEVERFOCUSSABLE
    This control can never receive focus.

  • COMPAT_ALWAYSDEFERSETWINDOWRGN
    This control is allowed to have, at most, one pending resize request.

  • COMPAT_INPLACEACTIVATESYNCHRONOUSLY
    This control is in-place activated syncronously.

  • COMPAT_NEEDSZEROBASEDDRAWRECT
    This control is positioned in the upper-left corner of the host window.

  • COMPAT_HWNDPRIVATE
    This control does not provide access to its window handle.

  • COMPAT_SECURITYCHECKONREDIRECT
    This control is prevented from accessing content from another domain when redirected by the original server.

  • COMPAT_SAFEFOR_LOADING
    Internet Explorer 7 and later. In the Internet zone, Internet Explorer checks every control for IObjectSafety to determine safety status quickly and abort instantiation as soon as possible. If a particular control doesn't implement IObjectSafety or component categories yet still needs to be instantiated in Internet Explorer without data or scripting, this compatibility flag can be used to disable the frontloaded safety check and revert back to Internet Explorer 6 behavior. See Safe Initialization and Scripting for ActiveX Controls.

Remarks

These enumeration members are bit masks that determine how ActiveX controls are used in Internet Explorer. Values are stored in the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility.

Requirements

Minimum supported client

Windows XP

Minimum supported server

Windows 2000 Server

Header

N/A