COMMON.H
/* 
 * COMMON.H 
 * 
 * Structures and definitions applicable to all OLE 2.0 UI dialogs. 
 * 
 * Copyright (c)1992-1996 Microsoft Corporation, All Right Reserved 
 */ 
 
 
#ifndef _COMMON_H_ 
#define _COMMON_H_ 
 
#include "ansiapi.h" 
 
//Structure for label and source extraction from a metafile 
typedef struct tagLABELEXTRACT 
   { 
   LPOLESTR    lpsz; 
   UINT        Index;      // index in lpsz (so we can retrieve 2+ lines) 
   DWORD       PrevIndex;  // index of last line (so we can mimic word wrap) 
 
   union 
      { 
      UINT    cch;        //Length of label for label extraction 
      UINT    iIcon;      //Index of icon in source extraction. 
      } u; 
 
   //For internal use in enum procs 
   BOOL        fFoundIconOnly; 
   BOOL        fFoundSource; 
   BOOL        fFoundIndex; 
   } LABELEXTRACT, FAR * LPLABELEXTRACT; 
 
 
//Structure for extracting icons from a metafile (CreateIcon parameters) 
typedef struct tagICONEXTRACT 
   { 
   HICON       hIcon;          //Icon created in the enumeration proc. 
 
   /* 
    * Since we want to handle multitasking well we have the caller 
    * of the enumeration proc instantiate these variables instead of 
    * using statics in the enum proc (which would be bad). 
    */ 
   BOOL        fAND; 
   HGLOBAL     hMemAND;        //Enumeration proc allocates and copies 
   } ICONEXTRACT, FAR * LPICONEXTRACT; 
 
 
//Structure to use to pass info to EnumMetafileDraw 
typedef struct tagDRAWINFO 
   { 
   RECT     Rect; 
   BOOL     fIconOnly; 
   } DRAWINFO, FAR * LPDRAWINFO; 
 
int CALLBACK EXPORT EnumMetafileIconDraw(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPARAM); 
int CALLBACK EXPORT EnumMetafileExtractLabel(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPLABELEXTRACT); 
int CALLBACK EXPORT EnumMetafileExtractIcon(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPICONEXTRACT); 
int CALLBACK EXPORT EnumMetafileExtractIconSource(HDC, HANDLETABLE FAR *, METARECORD FAR *, int, LPLABELEXTRACT); 
 
//Shared globals:  our instance and clipboard formats used by the PasteSpecial dialog 
 
extern HINSTANCE  ghInst; 
 
extern UINT       cfObjectDescriptor; 
extern UINT       cfLinkSrcDescriptor; 
extern UINT       cfEmbedSource; 
extern UINT       cfEmbeddedObject; 
extern UINT       cfLinkSource; 
extern UINT       cfOwnerLink; 
extern UINT       cfFileName; 
 
#endif //_COMMON_H_