OleUIInsertObject

Invokes the standard Insert Object dialog box, which allows the user to select an object source and class name, as well as the option of displaying the object as itself or as an icon.

UINT OleUIInsertObject(

LPOLEUIINSERTOBJECT lpIO
//Points to the in-out structure
);

Parameter

lpIO

Points to the in-out structure for this dialog.

Return Values

Standard Success/Error Definitions

OLEUI_FALSE

Unknown failure (unused).

OLEUI_SUCCESS

No error, same as OLEUI_OK.

OLEUI_OK

The user pressed the OK button.

OLEUI_CANCEL

The user pressed the Cancel button.

Standard Field Validation Errors

OLEUI_ERR_STANDARDMIN

Errors common to all dialogs lie in the range OLEUI_ERR_STANDARDMIN to OLEUI_ERR_STANDARDMAX. This value allows the application to test for standard messages in order to display error messages to the user.

OLEUI_ERR_STRUCTURENULL

The pointer to an OLEUIXXX structure passed into the function was NULL.

OLEUI_ERR_STRUCTUREINVALID

Insufficient permissions for read or write access to an OLEUIXXX structure.

OLEUI_ERR_CBSTRUCTINCORRECT

The cbstruct value is incorrect.

OLEUI_ERR_HWNDOWNERINVALID

The hWndOwner value is invalid.

OLEUI_ERR_LPSZCAPTIONINVALID

The lpszCaption value is invalid.

OLEUI_ERR_LPFNHOOKINVALID

The lpfnHook value is invalid.

OLEUI_ERR_HINSTANCEINVALID

The hInstance value is invalid.

OLEUI_ERR_LPSZTEMPLATEINVALID

The lpszTemplate value is invalid.

OLEUI_ERR_HRESOURCEINVALID

The hResource value is invalid.

Initialization Errors

OLEUI_ERR_FINDTEMPLATEFAILURE

Unable to find the dialog template.

OLEUI_ERR_LOADTEMPLATEFAILURE

Unable to load the dialog template.

OLEUI_ERR_DIALOGFAILURE

Dialog initialization failed.

OLEUI_ERR_LOCALMEMALLOC

A call to LocalAlloc or the standard IMalloc allocator failed.

OLEUI_ERR_GLOBALMEMALLOC

A call to GlobalAlloc or the standard IMalloc allocator failed.

OLEUI_ERR_LOADSTRING

Unable to LoadString localized resources from the library.

OLEUI_ERR_OLEMEMALLOC

A call to the standard IMalloc allocator failed.

Function Specific Errors

OLEUI_ERR_STANDARDMAX

Errors common to all dialogs lie in the range OLEUI_ERR_STANDARDMIN to OLEUI_ERR_STANDARDMAX. This value allows the application to test for standard messages in order to display error messages to the user.

OLEUI_IOERR_LPSZFILEINVALID

The lpszFile value is invalid or user has insufficient write access permissions.. This lpszFile member points to the name of the file linked to or inserted.

OLEUI_IOERR_LPFORMATETCINVALID

The lpFormatEtc value is invalid. This member identifies the desired format.

OLEUI_IOERR_PPVOBJINVALID

The ppvOjb value is invalid. This member points to the location where the pointer for the object is returned.

OLEUI_IOERR_LPIOLECLIENTSITEINVALID

The lpIOleClientSite value is invalid. This member points to the client site for the object.

OLEUI_IOERR_LPISTORAGEINVALID

The lpIStorage value is invalid. This member points to the storage to be used for the object.

OLEUI_IOERR_SCODEHASERROR

The sc member of lpIO has additional error information.

OLEUI_IOERR_LPCLSIDEXCLUDEINVALID

The lpClsidExclude value is invalid. This member contains the list of CLSIDs to exclude.

OLEUI_IOERR_CCHFILEINVALID

The cchFile or lpszFile value is invalid. The cchFile member specifies the size of the lpszFile buffer. The lpszFile member points to the name of the file linked to or inserted.

Comments

OleUIInsertObject
allows the user to select the type of object to be inserted from a listbox containing the object applications registered on the user's system. To populate that listbox, OleUIInsertObject traverses the registry, adding every object server it finds that meets the following criteria:

  • The registry entry does not include the NotInsertable key.

  • The registry entry includes a OLE 1.0 style Protocol\\StdFileEditing\\Server key.

  • The registry entry includes the Insertable key.

  • The object's CLSID is not included in the list of objects to exclude (the lpClsidExclude member of OLEUIINSERTOBJECT).

By default, OleUIInsertObject does not validate object servers; however, if the IOF_VERIFYSERVEREXIST flag is included in the dwFlags member of the OLEUIINSERTOBJECT structure, then OleUIInsertObject verifies that the server exists. If it does not exist, then the server's object is not added to the list of available objects. Server validation is a time-extensive operation and is a significant performance factor.

To free an HMETAFILEPICT returned from the Insert Object or Paste Special dialog box, delete the attached metafile on the handle, as follows:

  • oid FreeHmetafilepict(HMETAFILEPICT hmfp)

{

if (hmfp != NULL)

{

LPMETAFILEPICT pmfp = GlobalLock(hmfp);

DeleteMetaFile(pmfp->hMF);

GlobalUnlock(hmfp);

GlobalFree(hmfp);

}

} // FreeHmetafilepict

See Also

OLEUIINSERTOBJECT


OpenFile
DeleteMetaFile, GlobalUnlock, GlobalFree in Win32

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database