STGMEDIUM  1VR.M97

The STGMEDIUM structure is a generalized global memory handle used for data transfer operations by the IAdviseSink3F9W.KC, IDataObjectZHWNNR, and IOleCache interfaces.

typedef struct tagSTGMEDIUM

    DWORD tymed;

    [switch_type(DWORD), switch_is((DWORD) tymed)]

    union { 

        [case(TYMED_GDI)]      HBITMAP        hBitmap;

        [case(TYMED_MFPICT)]   HMETAFILEPICT  hMetafilePict;

        [case(TYMED_ENHMF)]    HENHMETAFILE   hEnhMetaFile;

        [case(TYMED_HGLOBAL)]  HGLOBAL        hGlobal;

        [case(TYMED_FILE)]     LPWSTR         lpszFileName;

        [case(TYMED_ISTREAM)]  IStream        *pstm;

        [case(TYMED_ISTORAGE)] IStorage       *pstg;

        [default] ;

    };

    [unique] IUnknown *pUnkForRelease;

}STGMEDIUM;

typedef STGMEDIUM *LPSTGMEDIUM;

 

Members

tymed

Type of storage medium. The marshaling and unmarshaling routines use this value to determine which union member was used. This value must be one of the elements of the TYMED1QNCE4N enumeration.

union member

Handle, string, or interface pointer that the receiving process can use to access the data being transferred. If tymed is TYMED_NULL, the union member is undefined; otherwise, it is one of the following:

hBitmap

Bitmap handle. The tymed member is TYMED_GDI.

hMetafilePict

Metafile handle. The tymed member is TYMED_MFPICT.

hEnhMetaFile

Enhanced metafile handle. The tymed member is TYMED_ENHMF.

hGlobal

Global memory handle. The tymed member is TYMED_HGLOBAL.

lpszFileName

Pointer to the path of a disk file that contains the data. The tymed member is TYMED_FILE.

pstm

Pointer to an IStream8MD3QE interface. The tymed member is TYMED_ISTREAM.

pstg

Pointer to an IStorageFS1VT1 interface. The tymed member is TYMED_ISTORAGE.

pUnkForRelease

Pointer to an interface instance that allows the sending process to control the way the storage is released when the receiving process calls the ReleaseStgMedium function. If pUnkForRelease is NULL, ReleaseStgMedium uses default procedures to release the storage; otherwise, ReleaseStgMedium uses the specified IUnknown1NEM0LU interface.

 

See Also

FORMATETC, IAdviseSink, IDataObject, IOleCache, ReleaseStgMedium