/*
 * INSOBJ.H
 *
 * Internal definitions, structures, and function prototypes for the
 * OLE 2.0 UI Insert Object dialog.
 *
 * Copyright (c)1993 Microsoft Corporation, All Rights Reserved
 */


#ifndef _INSOBJ_H_
#define _INSOBJ_H_

//Internally used structure
typedef struct tagINSERTOBJECT
   {
   LPOLEUIINSERTOBJECT lpOIO;              //Original structure passed.

   /*
    * What we store extra in this structure besides the original caller's
    * pointer are those fields that we need to modify during the life of
    * the dialog but that we don't want to change in the original structure
    * until the user presses OK.
    */
   DWORD               dwFlags;
   CLSID               clsid;
   OLECHAR             szFile[OLEUI_CCHPATHMAX];
   BOOL                fFileSelected;      //Enables Display As Icon for links
   BOOL                fAsIconNew;
   BOOL                fAsIconFile;
   BOOL                fFileDirty;
   BOOL                fFileValid;
   UINT                nErrCode;
   HGLOBAL             hMetaPictFile;
   UINT                nBrowseHelpID;      // Help ID callback for Browse dlg
   } INSERTOBJECT, *PINSERTOBJECT, FAR *LPINSERTOBJECT;



//Internal function prototypes
//INSOBJ.C
BOOL CALLBACK EXPORT InsertObjectDialogProc(HWND, UINT, WPARAM, LPARAM);
BOOL            FInsertObjectInit(HWND, WPARAM, LPARAM);
UINT            UFillClassList(HWND, UINT, LPCLSID, BOOL);
BOOL            FToggleObjectSource(HWND, LPINSERTOBJECT, DWORD);
void            UpdateClassIcon(HWND, LPINSERTOBJECT, HWND);
void            UpdateClassType(HWND, LPINSERTOBJECT, BOOL);
void            SetInsertObjectResults(HWND, LPINSERTOBJECT);
BOOL            FValidateInsertFile(HWND, BOOL, UINT FAR*);
void            InsertObjectCleanup(HWND);

#endif //_INSOBJ_H_
