Inside-out Activation

With inside-out activation, interaction with an object is direct; that is, the object is activated as the user moves the pointer over the extent of the object. From the user's perspective, inside-out objects are indistinguishable from native data because the content of the object is directly interactive and no additional action is necessary. Use this method for the design of objects that benefit from direct interaction, or when activating the object has little effect on performance or use of system resources.

Inside-out activation requires closer cooperation between the container and the object. For example, when the user begins a selection within an inside-out object, the container must clear its own selection so that the behavior is consistent with normal selection interaction. An object supporting inside-out activation controls the appearance of the pointer as it moves over its extent and responds immediately to input. Therefore, to select the object as a whole, the user selects the border, or some other handle, provided by the object or its container. For example, the container application can support selection techniques, such as region selection that select the object.

Although the default behavior for an OLE embedded object is outside-in activation, you can store information in the registry that indicates that an object's type (application class) is capable of inside-out activation (OLEMISC_INSIDEOUT) and prefers inside-out behavior (OLEMISC_ACTIVATEWHENVISIBLE). You can set these values in a MiscStatus subkey, under the CLSID subkey of the HKEY_CLASSES_ROOT key.

Note
For more information about how to access OLEMISC_IN-SIDEOUT and OLEMISC_ACTI-VATEWHENVISIBLE and the IOleObject:: GetMiscStatus function, see the OLE documentation included in the Win32 SDK.