Ignore:
Timestamp:
Sep 5, 2001, 3:19:02 PM (24 years ago)
Author:
bird
Message:

Added $Id:$ keyword.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/ole32/datacache.c

    r5602 r6648  
     1/* $Id: datacache.c,v 1.2 2001-09-05 13:17:08 bird Exp $ */
    12/*
    2  *      OLE 2 Data cache
     3 *  OLE 2 Data cache
    34 *
    45 *      Copyright 1999  Francis Beaudet
     
    1718 *  -  This implementation of the datacache will let your application
    1819 *     load documents that have embedded OLE objects in them and it will
    19  *     also retrieve the metafile representation of those objects. 
     20 *     also retrieve the metafile representation of those objects.
    2021 *  -  This implementation of the datacache will also allow your
    2122 *     application to save new documents with OLE objects in them.
    22  *  -  The main thing that it doesn't do is allow you to activate 
     23 *  -  The main thing that it doesn't do is allow you to activate
    2324 *     or modify the OLE objects in any way.
    2425 *  -  I haven't found any good documentation on the real usage of
     
    2728 *     "\002OlePresXXX". It appears to just be a counter.
    2829 *  -  Also, I don't know the real content of the presentation stream
    29  *     header. I was able to figure-out where the extent of the object 
     30 *     header. I was able to figure-out where the extent of the object
    3031 *     was stored and the aspect, but that's about it.
    3132 */
     
    6061typedef struct PresentationDataHeader
    6162{
    62   DWORD unknown1;       /* -1 */
    63   DWORD unknown2;       /* 3, possibly CF_METAFILEPICT */
    64   DWORD unknown3;       /* 4, possibly TYMED_ISTREAM */
     63  DWORD unknown1;   /* -1 */
     64  DWORD unknown2;   /* 3, possibly CF_METAFILEPICT */
     65  DWORD unknown3;   /* 4, possibly TYMED_ISTREAM */
    6566  DVASPECT dvAspect;
    66   DWORD unknown5;       /* -1 */
     67  DWORD unknown5;   /* -1 */
    6768
    6869  DWORD unknown6;
    69   DWORD unknown7;       /* 0 */
     70  DWORD unknown7;   /* 0 */
    7071  DWORD dwObjectExtentX;
    7172  DWORD dwObjectExtentY;
     
    8182   * List all interface VTables here
    8283   */
    83   ICOM_VTABLE(IDataObject)*      lpvtbl1; 
     84  ICOM_VTABLE(IDataObject)*      lpvtbl1;
    8485  ICOM_VTABLE(IUnknown)*         lpvtbl2;
    8586  ICOM_VTABLE(IPersistStorage)*  lpvtbl3;
    86   ICOM_VTABLE(IViewObject2)*     lpvtbl4; 
     87  ICOM_VTABLE(IViewObject2)*     lpvtbl4;
    8788  ICOM_VTABLE(IOleCache2)*       lpvtbl5;
    8889  ICOM_VTABLE(IOleCacheControl)* lpvtbl6;
     
    119120
    120121/*
    121  * Here, I define utility macros to help with the casting of the 
     122 * Here, I define utility macros to help with the casting of the
    122123 * "this" parameter.
    123124 * There is a version to accomodate all of the VTables implemented
     
    125126 */
    126127#define _ICOM_THIS_From_IDataObject(class,name)       class* this = (class*)name;
    127 #define _ICOM_THIS_From_NDIUnknown(class, name)       class* this = (class*)(((char*)name)-sizeof(void*)); 
    128 #define _ICOM_THIS_From_IPersistStorage(class, name)  class* this = (class*)(((char*)name)-2*sizeof(void*)); 
    129 #define _ICOM_THIS_From_IViewObject2(class, name)     class* this = (class*)(((char*)name)-3*sizeof(void*)); 
    130 #define _ICOM_THIS_From_IOleCache2(class, name)       class* this = (class*)(((char*)name)-4*sizeof(void*)); 
    131 #define _ICOM_THIS_From_IOleCacheControl(class, name) class* this = (class*)(((char*)name)-5*sizeof(void*)); 
     128#define _ICOM_THIS_From_NDIUnknown(class, name)       class* this = (class*)(((char*)name)-sizeof(void*));
     129#define _ICOM_THIS_From_IPersistStorage(class, name)  class* this = (class*)(((char*)name)-2*sizeof(void*));
     130#define _ICOM_THIS_From_IViewObject2(class, name)     class* this = (class*)(((char*)name)-3*sizeof(void*));
     131#define _ICOM_THIS_From_IOleCache2(class, name)       class* this = (class*)(((char*)name)-4*sizeof(void*));
     132#define _ICOM_THIS_From_IOleCacheControl(class, name) class* this = (class*)(((char*)name)-5*sizeof(void*));
    132133
    133134/*
     
    135136 */
    136137static DataCache* DataCache_Construct(REFCLSID  clsid,
    137                                       LPUNKNOWN pUnkOuter);
     138                      LPUNKNOWN pUnkOuter);
    138139static void       DataCache_Destroy(DataCache* ptrToDestroy);
    139140static HRESULT    DataCache_ReadPresentationData(DataCache*              this,
    140                                                 DWORD                   drawAspect,
    141                                                 PresentationDataHeader* header);
     141                        DWORD                   drawAspect,
     142                        PresentationDataHeader* header);
    142143static HRESULT    DataCache_OpenPresStream(DataCache *this,
    143                                            DWORD      drawAspect,
    144                                            IStream  **pStm);
     144                       DWORD      drawAspect,
     145                       IStream  **pStm);
    145146static HMETAFILE  DataCache_ReadPresMetafile(DataCache* this,
    146                                              DWORD      drawAspect);
     147                         DWORD      drawAspect);
    147148static void       DataCache_FireOnViewChange(DataCache* this,
    148                                              DWORD      aspect,
    149                                              LONG       lindex);
     149                         DWORD      aspect,
     150                         LONG       lindex);
    150151
    151152/*
     
    157158            REFIID         riid,
    158159            void**         ppvObject);
    159 static ULONG WINAPI DataCache_NDIUnknown_AddRef( 
     160static ULONG WINAPI DataCache_NDIUnknown_AddRef(
    160161            IUnknown*      iface);
    161 static ULONG WINAPI DataCache_NDIUnknown_Release( 
     162static ULONG WINAPI DataCache_NDIUnknown_Release(
    162163            IUnknown*      iface);
    163164
     
    170171            REFIID           riid,
    171172            void**           ppvObject);
    172 static ULONG WINAPI DataCache_IDataObject_AddRef( 
     173static ULONG WINAPI DataCache_IDataObject_AddRef(
    173174            IDataObject*     iface);
    174 static ULONG WINAPI DataCache_IDataObject_Release( 
     175static ULONG WINAPI DataCache_IDataObject_Release(
    175176            IDataObject*     iface);
    176177static HRESULT WINAPI DataCache_GetData(
    177             IDataObject*     iface,
    178             LPFORMATETC      pformatetcIn,
    179             STGMEDIUM*       pmedium);
     178        IDataObject*     iface,
     179        LPFORMATETC      pformatetcIn,
     180        STGMEDIUM*       pmedium);
    180181static HRESULT WINAPI DataCache_GetDataHere(
    181             IDataObject*     iface,
    182             LPFORMATETC      pformatetc,
    183             STGMEDIUM*       pmedium);
     182        IDataObject*     iface,
     183        LPFORMATETC      pformatetc,
     184        STGMEDIUM*       pmedium);
    184185static HRESULT WINAPI DataCache_QueryGetData(
    185             IDataObject*     iface,
    186             LPFORMATETC      pformatetc);
     186        IDataObject*     iface,
     187        LPFORMATETC      pformatetc);
    187188static HRESULT WINAPI DataCache_GetCanonicalFormatEtc(
    188             IDataObject*     iface,
    189             LPFORMATETC      pformatectIn,
    190             LPFORMATETC      pformatetcOut);
     189        IDataObject*     iface,
     190        LPFORMATETC      pformatectIn,
     191        LPFORMATETC      pformatetcOut);
    191192static HRESULT WINAPI DataCache_IDataObject_SetData(
    192             IDataObject*     iface,
    193             LPFORMATETC      pformatetc,
    194             STGMEDIUM*       pmedium,
    195             BOOL             fRelease);
     193        IDataObject*     iface,
     194        LPFORMATETC      pformatetc,
     195        STGMEDIUM*       pmedium,
     196        BOOL             fRelease);
    196197static HRESULT WINAPI DataCache_EnumFormatEtc(
    197             IDataObject*     iface,       
    198             DWORD            dwDirection,
    199             IEnumFORMATETC** ppenumFormatEtc);
     198        IDataObject*     iface,
     199        DWORD            dwDirection,
     200        IEnumFORMATETC** ppenumFormatEtc);
    200201static HRESULT WINAPI DataCache_DAdvise(
    201             IDataObject*     iface,
    202             FORMATETC*       pformatetc,
    203             DWORD            advf,
    204             IAdviseSink*     pAdvSink,
    205             DWORD*           pdwConnection);
     202        IDataObject*     iface,
     203        FORMATETC*       pformatetc,
     204        DWORD            advf,
     205        IAdviseSink*     pAdvSink,
     206        DWORD*           pdwConnection);
    206207static HRESULT WINAPI DataCache_DUnadvise(
    207             IDataObject*     iface,
    208             DWORD            dwConnection);
     208        IDataObject*     iface,
     209        DWORD            dwConnection);
    209210static HRESULT WINAPI DataCache_EnumDAdvise(
    210             IDataObject*     iface,
    211             IEnumSTATDATA**  ppenumAdvise);
     211        IDataObject*     iface,
     212        IEnumSTATDATA**  ppenumAdvise);
    212213
    213214/*
     
    219220            REFIID           riid,
    220221            void**           ppvObject);
    221 static ULONG WINAPI DataCache_IPersistStorage_AddRef( 
     222static ULONG WINAPI DataCache_IPersistStorage_AddRef(
    222223            IPersistStorage* iface);
    223 static ULONG WINAPI DataCache_IPersistStorage_Release( 
     224static ULONG WINAPI DataCache_IPersistStorage_Release(
    224225            IPersistStorage* iface);
    225 static HRESULT WINAPI DataCache_GetClassID( 
     226static HRESULT WINAPI DataCache_GetClassID(
    226227            IPersistStorage* iface,
    227             CLSID*           pClassID);
    228 static HRESULT WINAPI DataCache_IsDirty( 
     228        CLSID*           pClassID);
     229static HRESULT WINAPI DataCache_IsDirty(
    229230            IPersistStorage* iface);
    230 static HRESULT WINAPI DataCache_InitNew(
    231             IPersistStorage* iface,
    232             IStorage*        pStg);
    233 static HRESULT WINAPI DataCache_Load(
     231static HRESULT WINAPI DataCache_InitNew(
    234232            IPersistStorage* iface,
    235             IStorage*        pStg);
    236 static HRESULT WINAPI DataCache_Save(
     233        IStorage*        pStg);
     234static HRESULT WINAPI DataCache_Load(
    237235            IPersistStorage* iface,
    238             IStorage*        pStg,
    239             BOOL             fSameAsLoad);
    240 static HRESULT WINAPI DataCache_SaveCompleted(
    241             IPersistStorage* iface, 
    242             IStorage*        pStgNew);
     236        IStorage*        pStg);
     237static HRESULT WINAPI DataCache_Save(
     238            IPersistStorage* iface,
     239        IStorage*        pStg,
     240        BOOL             fSameAsLoad);
     241static HRESULT WINAPI DataCache_SaveCompleted(
     242            IPersistStorage* iface,
     243        IStorage*        pStgNew);
    243244static HRESULT WINAPI DataCache_HandsOffStorage(
    244245            IPersistStorage* iface);
     
    252253            REFIID           riid,
    253254            void**           ppvObject);
    254 static ULONG WINAPI DataCache_IViewObject2_AddRef( 
     255static ULONG WINAPI DataCache_IViewObject2_AddRef(
    255256            IViewObject2* iface);
    256 static ULONG WINAPI DataCache_IViewObject2_Release( 
     257static ULONG WINAPI DataCache_IViewObject2_Release(
    257258            IViewObject2* iface);
    258259static HRESULT WINAPI DataCache_Draw(
    259260            IViewObject2*    iface,
    260             DWORD            dwDrawAspect,
    261             LONG             lindex,
    262             void*            pvAspect,
    263             DVTARGETDEVICE*  ptd,
    264             HDC              hdcTargetDev,
    265             HDC              hdcDraw,
    266             LPCRECTL         lprcBounds,
    267             LPCRECTL         lprcWBounds,
    268             IVO_ContCallback pfnContinue,
    269             DWORD            dwContinue);
     261        DWORD            dwDrawAspect,
     262        LONG             lindex,
     263        void*            pvAspect,
     264        DVTARGETDEVICE*  ptd,
     265        HDC              hdcTargetDev,
     266        HDC              hdcDraw,
     267        LPCRECTL         lprcBounds,
     268        LPCRECTL         lprcWBounds,
     269        IVO_ContCallback pfnContinue,
     270        DWORD            dwContinue);
    270271static HRESULT WINAPI DataCache_GetColorSet(
    271             IViewObject2*   iface, 
    272             DWORD           dwDrawAspect,
    273             LONG            lindex,
    274             void*           pvAspect,
    275             DVTARGETDEVICE* ptd,
    276             HDC             hicTargetDevice,
    277             LOGPALETTE**    ppColorSet);
     272            IViewObject2*   iface,
     273        DWORD           dwDrawAspect,
     274        LONG            lindex,
     275        void*           pvAspect,
     276        DVTARGETDEVICE* ptd,
     277        HDC             hicTargetDevice,
     278        LOGPALETTE**    ppColorSet);
    278279static HRESULT WINAPI DataCache_Freeze(
    279280            IViewObject2*   iface,
    280             DWORD           dwDrawAspect,
    281             LONG            lindex,
    282             void*           pvAspect,
    283             DWORD*          pdwFreeze);
     281        DWORD           dwDrawAspect,
     282        LONG            lindex,
     283        void*           pvAspect,
     284        DWORD*          pdwFreeze);
    284285static HRESULT WINAPI DataCache_Unfreeze(
    285286            IViewObject2*   iface,
    286             DWORD           dwFreeze);
     287        DWORD           dwFreeze);
    287288static HRESULT WINAPI DataCache_SetAdvise(
    288289            IViewObject2*   iface,
    289             DWORD           aspects,
    290             DWORD           advf,
    291             IAdviseSink*    pAdvSink);
     290        DWORD           aspects,
     291        DWORD           advf,
     292        IAdviseSink*    pAdvSink);
    292293static HRESULT WINAPI DataCache_GetAdvise(
    293             IViewObject2*   iface, 
    294             DWORD*          pAspects,
    295             DWORD*          pAdvf,
    296             IAdviseSink**   ppAdvSink);
     294            IViewObject2*   iface,
     295        DWORD*          pAspects,
     296        DWORD*          pAdvf,
     297        IAdviseSink**   ppAdvSink);
    297298static HRESULT WINAPI DataCache_GetExtent(
    298             IViewObject2*   iface, 
    299             DWORD           dwDrawAspect,
    300             LONG            lindex,
    301             DVTARGETDEVICE* ptd,
    302             LPSIZEL         lpsizel);
     299            IViewObject2*   iface,
     300        DWORD           dwDrawAspect,
     301        LONG            lindex,
     302        DVTARGETDEVICE* ptd,
     303        LPSIZEL         lpsizel);
    303304
    304305/*
     
    310311            REFIID          riid,
    311312            void**          ppvObject);
    312 static ULONG WINAPI DataCache_IOleCache2_AddRef( 
     313static ULONG WINAPI DataCache_IOleCache2_AddRef(
    313314            IOleCache2*     iface);
    314 static ULONG WINAPI DataCache_IOleCache2_Release( 
     315static ULONG WINAPI DataCache_IOleCache2_Release(
    315316            IOleCache2*     iface);
    316317static HRESULT WINAPI DataCache_Cache(
    317318            IOleCache2*     iface,
    318             FORMATETC*      pformatetc,
    319             DWORD           advf,
    320             DWORD*          pdwConnection);
     319        FORMATETC*      pformatetc,
     320        DWORD           advf,
     321        DWORD*          pdwConnection);
    321322static HRESULT WINAPI DataCache_Uncache(
    322             IOleCache2*     iface,
    323             DWORD           dwConnection);
     323        IOleCache2*     iface,
     324        DWORD           dwConnection);
    324325static HRESULT WINAPI DataCache_EnumCache(
    325326            IOleCache2*     iface,
    326             IEnumSTATDATA** ppenumSTATDATA);
     327        IEnumSTATDATA** ppenumSTATDATA);
    327328static HRESULT WINAPI DataCache_InitCache(
    328             IOleCache2*     iface,
    329             IDataObject*    pDataObject);
     329        IOleCache2*     iface,
     330        IDataObject*    pDataObject);
    330331static HRESULT WINAPI DataCache_IOleCache2_SetData(
    331332            IOleCache2*     iface,
    332             FORMATETC*      pformatetc,
    333             STGMEDIUM*      pmedium,
    334             BOOL            fRelease);
     333        FORMATETC*      pformatetc,
     334        STGMEDIUM*      pmedium,
     335        BOOL            fRelease);
    335336static HRESULT WINAPI DataCache_UpdateCache(
    336337            IOleCache2*     iface,
    337             LPDATAOBJECT    pDataObject,
    338             DWORD           grfUpdf,
    339             LPVOID          pReserved);
     338        LPDATAOBJECT    pDataObject,
     339        DWORD           grfUpdf,
     340        LPVOID          pReserved);
    340341static HRESULT WINAPI DataCache_DiscardCache(
    341342            IOleCache2*     iface,
    342             DWORD           dwDiscardOptions);
     343        DWORD           dwDiscardOptions);
    343344
    344345/*
     
    350351            REFIID            riid,
    351352            void**            ppvObject);
    352 static ULONG WINAPI DataCache_IOleCacheControl_AddRef( 
     353static ULONG WINAPI DataCache_IOleCacheControl_AddRef(
    353354            IOleCacheControl* iface);
    354 static ULONG WINAPI DataCache_IOleCacheControl_Release( 
     355static ULONG WINAPI DataCache_IOleCacheControl_Release(
    355356            IOleCacheControl* iface);
    356357static HRESULT WINAPI DataCache_OnRun(
    357             IOleCacheControl* iface,
    358             LPDATAOBJECT      pDataObject);
     358        IOleCacheControl* iface,
     359        LPDATAOBJECT      pDataObject);
    359360static HRESULT WINAPI DataCache_OnStop(
    360             IOleCacheControl* iface);
     361        IOleCacheControl* iface);
    361362
    362363/*
     
    447448 */
    448449HRESULT WINAPI CreateDataCache(
    449   LPUNKNOWN pUnkOuter, 
    450   REFCLSID  rclsid, 
    451   REFIID    riid, 
     450  LPUNKNOWN pUnkOuter,
     451  REFCLSID  rclsid,
     452  REFIID    riid,
    452453  LPVOID*   ppvObj)
    453454{
     
    471472   * IUnknown pointer can be returned to the outside.
    472473   */
    473   if ( (pUnkOuter!=NULL) && 
     474  if ( (pUnkOuter!=NULL) &&
    474475       (memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) != 0) )
    475476    return CLASS_E_NOAGGREGATION;
     
    478479   * Try to construct a new instance of the class.
    479480   */
    480   newCache = DataCache_Construct(rclsid, 
    481                                 pUnkOuter);
     481  newCache = DataCache_Construct(rclsid,
     482                pUnkOuter);
    482483
    483484  if (newCache == 0)
     
    514515  if (newObject==0)
    515516    return newObject;
    516  
     517
    517518  /*
    518519   * Initialize the virtual function table.
     
    524525  newObject->lpvtbl5 = &DataCache_IOleCache2_VTable;
    525526  newObject->lpvtbl6 = &DataCache_IOleCacheControl_VTable;
    526  
    527   /*
    528    * Start with one reference count. The caller of this function 
     527
     528  /*
     529   * Start with one reference count. The caller of this function
    529530   * must release the interface pointer when it is done.
    530531   */
     
    533534  /*
    534535   * Initialize the outer unknown
    535    * We don't keep a reference on the outer unknown since, the way 
     536   * We don't keep a reference on the outer unknown since, the way
    536537   * aggregation works, our lifetime is at least as large as it's
    537538   * lifetime.
     
    579580 * DataCache_ReadPresentationData
    580581 *
    581  * This method will read information for the requested presentation 
     582 * This method will read information for the requested presentation
    582583 * into the given structure.
    583584 *
     
    601602  hres = DataCache_OpenPresStream(
    602603           this,
    603            drawAspect,
    604            &presStream);
     604       drawAspect,
     605       &presStream);
    605606
    606607  if (FAILED(hres))
     
    613614  hres = IStream_Read(
    614615           presStream,
    615            header,
    616            sizeof(PresentationDataHeader),
    617            NULL);
     616       header,
     617       sizeof(PresentationDataHeader),
     618       NULL);
    618619
    619620  /*
     
    657658    {
    658659      IAdviseSink_OnViewChange(this->sinkInterface,
    659                                aspect,
    660                                lindex);
     660                   aspect,
     661                   lindex);
    661662
    662663      /*
     
    666667      if ( (this->sinkAdviseFlag & ADVF_ONLYONCE) != 0)
    667668      {
    668         IAdviseSink_Release(this->sinkInterface);
    669 
    670         this->sinkInterface  = NULL;
    671         this->sinkAspects    = 0;
    672         this->sinkAdviseFlag = 0;
     669    IAdviseSink_Release(this->sinkInterface);
     670
     671    this->sinkInterface  = NULL;
     672    this->sinkAspects    = 0;
     673    this->sinkAdviseFlag = 0;
    673674      }
    674675    }
     
    686687
    687688    return (elem->type == STGTY_STREAM)
    688         && (elem->cbSize.s.LowPart >= sizeof(PresentationDataHeader))
    689         && (strlenW(name) == 11)
    690         && (strncmpW(name, OlePres, 8) == 0)
    691         && (name[8] >= '0') && (name[8] <= '9')
    692         && (name[9] >= '0') && (name[9] <= '9')
    693         && (name[10] >= '0') && (name[10] <= '9');
     689    && (elem->cbSize.s.LowPart >= sizeof(PresentationDataHeader))
     690    && (strlenW(name) == 11)
     691    && (strncmpW(name, OlePres, 8) == 0)
     692    && (name[8] >= '0') && (name[8] <= '9')
     693    && (name[9] >= '0') && (name[9] <= '9')
     694    && (name[10] >= '0') && (name[10] <= '9');
    694695}
    695696
     
    707708 *
    708709 * Errors:
    709  *   S_OK               The requested stream has been opened.
    710  *   OLE_E_BLANK        The requested stream could not be found.
     710 *   S_OK       The requested stream has been opened.
     711 *   OLE_E_BLANK    The requested stream could not be found.
    711712 *   Quite a few others I'm too lazy to map correctly.
    712713 *
    713714 * Notes:
    714  *   Algorithm: Scan the elements of the presentation storage, looking
    715  *              for presentation streams. For each presentation stream,
    716  *              load the header and check to see if the aspect maches.
     715 *   Algorithm: Scan the elements of the presentation storage, looking
     716 *      for presentation streams. For each presentation stream,
     717 *      load the header and check to see if the aspect maches.
    717718 *
    718719 *   If a fallback is desired, just opening the first presentation stream
     
    735736    while ((hr = IEnumSTATSTG_Next(pEnum, 1, &elem, NULL)) == S_OK)
    736737    {
    737         if (DataCache_IsPresentationStream(&elem))
    738         {
    739             IStream *pStm;
    740 
    741             hr = IStorage_OpenStream(this->presentationStorage, elem.pwcsName,
    742                                      NULL, STGM_READ | STGM_SHARE_EXCLUSIVE, 0,
    743                                      &pStm);
    744             if (SUCCEEDED(hr))
    745             {
    746                 PresentationDataHeader header;
    747                 ULONG actual_read;
    748 
    749                 hr = IStream_Read(pStm, &header, sizeof(header), &actual_read);
    750 
    751                 /* can't use SUCCEEDED(hr): S_FALSE counts as an error */
    752                 if (hr == S_OK && actual_read == sizeof(header)
    753                     && header.dvAspect == drawAspect)
    754                 {
    755                     /* Rewind the stream before returning it. */
    756                     LARGE_INTEGER offset;
    757                     offset.s.LowPart = 0;
    758                     offset.s.HighPart = 0;
    759                     IStream_Seek(pStm, offset, STREAM_SEEK_SET, NULL);
    760 
    761                     *ppStm = pStm;
    762 
    763                     CoTaskMemFree(elem.pwcsName);
    764                     IEnumSTATSTG_Release(pEnum);
    765 
    766                     return S_OK;
    767                 }
    768 
    769                 IStream_Release(pStm);
    770             }
    771         }
    772 
    773         CoTaskMemFree(elem.pwcsName);
     738    if (DataCache_IsPresentationStream(&elem))
     739    {
     740        IStream *pStm;
     741
     742        hr = IStorage_OpenStream(this->presentationStorage, elem.pwcsName,
     743                     NULL, STGM_READ | STGM_SHARE_EXCLUSIVE, 0,
     744                     &pStm);
     745        if (SUCCEEDED(hr))
     746        {
     747        PresentationDataHeader header;
     748        ULONG actual_read;
     749
     750        hr = IStream_Read(pStm, &header, sizeof(header), &actual_read);
     751
     752        /* can't use SUCCEEDED(hr): S_FALSE counts as an error */
     753        if (hr == S_OK && actual_read == sizeof(header)
     754            && header.dvAspect == drawAspect)
     755        {
     756            /* Rewind the stream before returning it. */
     757            LARGE_INTEGER offset;
     758            offset.s.LowPart = 0;
     759            offset.s.HighPart = 0;
     760            IStream_Seek(pStm, offset, STREAM_SEEK_SET, NULL);
     761
     762            *ppStm = pStm;
     763
     764            CoTaskMemFree(elem.pwcsName);
     765            IEnumSTATSTG_Release(pEnum);
     766
     767            return S_OK;
     768        }
     769
     770        IStream_Release(pStm);
     771        }
    774772    }
    775773
     774    CoTaskMemFree(elem.pwcsName);
     775    }
     776
    776777    IEnumSTATSTG_Release(pEnum);
    777778
     
    782783 * DataCache_ReadPresentationData
    783784 *
    784  * This method will read information for the requested presentation 
     785 * This method will read information for the requested presentation
    785786 * into the given structure.
    786787 *
     
    808809   */
    809810  hres = DataCache_OpenPresStream(
    810            this, 
    811            drawAspect,
    812            &presStream);
     811           this,
     812       drawAspect,
     813       &presStream);
    813814
    814815  if (FAILED(hres))
     
    819820   */
    820821  hres = IStream_Stat(presStream,
    821                       &streamInfo,
    822                       STATFLAG_NONAME);
     822              &streamInfo,
     823              STATFLAG_NONAME);
    823824
    824825  /*
     
    830831  hres = IStream_Seek(
    831832           presStream,
    832            offset,
    833            STREAM_SEEK_SET,
    834            NULL);
     833       offset,
     834       STREAM_SEEK_SET,
     835       NULL);
    835836
    836837  streamInfo.cbSize.s.LowPart -= offset.s.LowPart;
     
    839840   * Allocate a buffer for the metafile bits.
    840841   */
    841   metafileBits = HeapAlloc(GetProcessHeap(), 
    842                            0,
    843                            streamInfo.cbSize.s.LowPart);
     842  metafileBits = HeapAlloc(GetProcessHeap(),
     843               0,
     844               streamInfo.cbSize.s.LowPart);
    844845
    845846  /*
     
    847848   */
    848849  hres = IStream_Read(
    849            presStream,
    850            metafileBits,
    851            streamInfo.cbSize.s.LowPart,
    852            NULL);
     850       presStream,
     851       metafileBits,
     852       streamInfo.cbSize.s.LowPart,
     853       NULL);
    853854
    854855  /*
     
    897898  if ( (this==0) || (ppvObject==0) )
    898899    return E_INVALIDARG;
    899  
     900
    900901  /*
    901902   * Initialize the return parameter.
     
    906907   * Compare the riid with the interface IDs implemented by this object.
    907908   */
    908   if (memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) == 0) 
     909  if (memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) == 0)
    909910  {
    910911    *ppvObject = iface;
    911912  }
    912   else if (memcmp(&IID_IDataObject, riid, sizeof(IID_IDataObject)) == 0) 
     913  else if (memcmp(&IID_IDataObject, riid, sizeof(IID_IDataObject)) == 0)
    913914  {
    914915    *ppvObject = (IDataObject*)&(this->lpvtbl1);
    915916  }
    916917  else if ( (memcmp(&IID_IPersistStorage, riid, sizeof(IID_IPersistStorage)) == 0)  ||
    917             (memcmp(&IID_IPersist, riid, sizeof(IID_IPersist)) == 0) )
     918        (memcmp(&IID_IPersist, riid, sizeof(IID_IPersist)) == 0) )
    918919  {
    919920    *ppvObject = (IPersistStorage*)&(this->lpvtbl3);
    920921  }
    921922  else if ( (memcmp(&IID_IViewObject, riid, sizeof(IID_IViewObject)) == 0) ||
    922             (memcmp(&IID_IViewObject2, riid, sizeof(IID_IViewObject2)) == 0) )
     923        (memcmp(&IID_IViewObject2, riid, sizeof(IID_IViewObject2)) == 0) )
    923924  {
    924925    *ppvObject = (IViewObject2*)&(this->lpvtbl4);
    925926  }
    926927  else if ( (memcmp(&IID_IOleCache, riid, sizeof(IID_IOleCache)) == 0) ||
    927             (memcmp(&IID_IOleCache2, riid, sizeof(IID_IOleCache2)) == 0) )
     928        (memcmp(&IID_IOleCache2, riid, sizeof(IID_IOleCache2)) == 0) )
    928929  {
    929930    *ppvObject = (IOleCache2*)&(this->lpvtbl5);
    930931  }
    931   else if (memcmp(&IID_IOleCacheControl, riid, sizeof(IID_IOleCacheControl)) == 0) 
     932  else if (memcmp(&IID_IOleCacheControl, riid, sizeof(IID_IOleCacheControl)) == 0)
    932933  {
    933934    *ppvObject = (IOleCacheControl*)&(this->lpvtbl6);
     
    942943    return E_NOINTERFACE;
    943944  }
    944  
     945
    945946  /*
    946947   * Query Interface always increases the reference count by one when it is
    947    * successful. 
     948   * successful.
    948949   */
    949950  IUnknown_AddRef((IUnknown*)*ppvObject);
    950951
    951   return S_OK;; 
     952  return S_OK;;
    952953}
    953954
     
    960961 * to the outer unknown.
    961962 */
    962 static ULONG WINAPI DataCache_NDIUnknown_AddRef( 
     963static ULONG WINAPI DataCache_NDIUnknown_AddRef(
    963964            IUnknown*      iface)
    964965{
     
    978979 * to the outer unknown.
    979980 */
    980 static ULONG WINAPI DataCache_NDIUnknown_Release( 
     981static ULONG WINAPI DataCache_NDIUnknown_Release(
    981982            IUnknown*      iface)
    982983{
     
    997998    return 0;
    998999  }
    999  
     1000
    10001001  return this->ref;
    10011002}
     
    10181019  _ICOM_THIS_From_IDataObject(DataCache, iface);
    10191020
    1020   return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); 
     1021  return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
    10211022}
    10221023
     
    10261027 * See Windows documentation for more details on IUnknown methods.
    10271028 */
    1028 static ULONG WINAPI DataCache_IDataObject_AddRef( 
     1029static ULONG WINAPI DataCache_IDataObject_AddRef(
    10291030            IDataObject*     iface)
    10301031{
    10311032  _ICOM_THIS_From_IDataObject(DataCache, iface);
    10321033
    1033   return IUnknown_AddRef(this->outerUnknown); 
     1034  return IUnknown_AddRef(this->outerUnknown);
    10341035}
    10351036
     
    10391040 * See Windows documentation for more details on IUnknown methods.
    10401041 */
    1041 static ULONG WINAPI DataCache_IDataObject_Release( 
     1042static ULONG WINAPI DataCache_IDataObject_Release(
    10421043            IDataObject*     iface)
    10431044{
    10441045  _ICOM_THIS_From_IDataObject(DataCache, iface);
    10451046
    1046   return IUnknown_Release(this->outerUnknown); 
     1047  return IUnknown_Release(this->outerUnknown);
    10471048}
    10481049
     
    10551056 */
    10561057static HRESULT WINAPI DataCache_GetData(
    1057             IDataObject*     iface,
    1058             LPFORMATETC      pformatetcIn,
    1059             STGMEDIUM*       pmedium)
     1058        IDataObject*     iface,
     1059        LPFORMATETC      pformatetcIn,
     1060        STGMEDIUM*       pmedium)
    10601061{
    10611062  HRESULT hr = 0;
     
    11541155
    11551156static HRESULT WINAPI DataCache_GetDataHere(
    1156             IDataObject*     iface,
    1157             LPFORMATETC      pformatetc,
    1158             STGMEDIUM*       pmedium)
     1157        IDataObject*     iface,
     1158        LPFORMATETC      pformatetc,
     1159        STGMEDIUM*       pmedium)
    11591160{
    11601161  FIXME("stub\n");
     
    11631164
    11641165static HRESULT WINAPI DataCache_QueryGetData(
    1165             IDataObject*     iface,
    1166             LPFORMATETC      pformatetc)
     1166        IDataObject*     iface,
     1167        LPFORMATETC      pformatetc)
    11671168{
    11681169  FIXME("stub\n");
     
    11781179 */
    11791180static HRESULT WINAPI DataCache_GetCanonicalFormatEtc(
    1180             IDataObject*     iface,
    1181             LPFORMATETC      pformatectIn,
    1182             LPFORMATETC      pformatetcOut)
     1181        IDataObject*     iface,
     1182        LPFORMATETC      pformatectIn,
     1183        LPFORMATETC      pformatetcOut)
    11831184{
    11841185  TRACE("()\n");
     
    11941195 */
    11951196static HRESULT WINAPI DataCache_IDataObject_SetData(
    1196             IDataObject*     iface,
    1197             LPFORMATETC      pformatetc,
    1198             STGMEDIUM*       pmedium,
    1199             BOOL             fRelease)
     1197        IDataObject*     iface,
     1198        LPFORMATETC      pformatetc,
     1199        STGMEDIUM*       pmedium,
     1200        BOOL             fRelease)
    12001201{
    12011202  IOleCache2* oleCache = NULL;
     
    12241225 */
    12251226static HRESULT WINAPI DataCache_EnumFormatEtc(
    1226             IDataObject*     iface,       
    1227             DWORD            dwDirection,
    1228             IEnumFORMATETC** ppenumFormatEtc)
     1227        IDataObject*     iface,
     1228        DWORD            dwDirection,
     1229        IEnumFORMATETC** ppenumFormatEtc)
    12291230{
    12301231  TRACE("()\n");
     
    12401241 */
    12411242static HRESULT WINAPI DataCache_DAdvise(
    1242             IDataObject*     iface,
    1243             FORMATETC*       pformatetc,
    1244             DWORD            advf,
    1245             IAdviseSink*     pAdvSink,
    1246             DWORD*           pdwConnection)
     1243        IDataObject*     iface,
     1244        FORMATETC*       pformatetc,
     1245        DWORD            advf,
     1246        IAdviseSink*     pAdvSink,
     1247        DWORD*           pdwConnection)
    12471248{
    12481249  TRACE("()\n");
     
    12581259 */
    12591260static HRESULT WINAPI DataCache_DUnadvise(
    1260             IDataObject*     iface,
    1261             DWORD            dwConnection)
     1261        IDataObject*     iface,
     1262        DWORD            dwConnection)
    12621263{
    12631264  TRACE("()\n");
     
    12731274 */
    12741275static HRESULT WINAPI DataCache_EnumDAdvise(
    1275             IDataObject*     iface,
    1276             IEnumSTATDATA**  ppenumAdvise)
     1276        IDataObject*     iface,
     1277        IEnumSTATDATA**  ppenumAdvise)
    12771278{
    12781279  TRACE("()\n");
     
    12971298  _ICOM_THIS_From_IPersistStorage(DataCache, iface);
    12981299
    1299   return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); 
     1300  return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
    13001301}
    13011302
     
    13051306 * See Windows documentation for more details on IUnknown methods.
    13061307 */
    1307 static ULONG WINAPI DataCache_IPersistStorage_AddRef( 
     1308static ULONG WINAPI DataCache_IPersistStorage_AddRef(
    13081309            IPersistStorage* iface)
    13091310{
    13101311  _ICOM_THIS_From_IPersistStorage(DataCache, iface);
    13111312
    1312   return IUnknown_AddRef(this->outerUnknown); 
     1313  return IUnknown_AddRef(this->outerUnknown);
    13131314}
    13141315
     
    13181319 * See Windows documentation for more details on IUnknown methods.
    13191320 */
    1320 static ULONG WINAPI DataCache_IPersistStorage_Release( 
     1321static ULONG WINAPI DataCache_IPersistStorage_Release(
    13211322            IPersistStorage* iface)
    13221323{
    13231324  _ICOM_THIS_From_IPersistStorage(DataCache, iface);
    13241325
    1325   return IUnknown_Release(this->outerUnknown); 
     1326  return IUnknown_Release(this->outerUnknown);
    13261327}
    13271328
     
    13331334 * See Windows documentation for more details on IPersistStorage methods.
    13341335 */
    1335 static HRESULT WINAPI DataCache_GetClassID( 
     1336static HRESULT WINAPI DataCache_GetClassID(
    13361337            IPersistStorage* iface,
    1337             CLSID*           pClassID)
     1338        CLSID*           pClassID)
    13381339{
    13391340  TRACE("(%p, %p)\n", iface, pClassID);
     
    13441345 * DataCache_IsDirty (IPersistStorage)
    13451346 *
    1346  * Until we actully connect to a running object and retrieve new 
     1347 * Until we actully connect to a running object and retrieve new
    13471348 * information to it, we never get dirty.
    13481349 *
    13491350 * See Windows documentation for more details on IPersistStorage methods.
    13501351 */
    1351 static HRESULT WINAPI DataCache_IsDirty( 
     1352static HRESULT WINAPI DataCache_IsDirty(
    13521353            IPersistStorage* iface)
    13531354{
     
    13651366 * See Windows documentation for more details on IPersistStorage methods.
    13661367 */
    1367 static HRESULT WINAPI DataCache_InitNew( 
    1368             IPersistStorage* iface, 
    1369             IStorage*        pStg)
     1368static HRESULT WINAPI DataCache_InitNew(
     1369            IPersistStorage* iface,
     1370        IStorage*        pStg)
    13701371{
    13711372  TRACE("(%p, %p)\n", iface, pStg);
     
    13771378 * DataCache_Load (IPersistStorage)
    13781379 *
    1379  * The data cache implementation of IPersistStorage_Load doesn't 
     1380 * The data cache implementation of IPersistStorage_Load doesn't
    13801381 * actually load anything. Instead, it holds on to the storage pointer
    1381  * and it will load the presentation information when the 
     1382 * and it will load the presentation information when the
    13821383 * IDataObject_GetData or IViewObject2_Draw methods are called.
    13831384 *
    13841385 * See Windows documentation for more details on IPersistStorage methods.
    13851386 */
    1386 static HRESULT WINAPI DataCache_Load( 
     1387static HRESULT WINAPI DataCache_Load(
    13871388            IPersistStorage* iface,
    1388             IStorage*        pStg)
     1389        IStorage*        pStg)
    13891390{
    13901391  _ICOM_THIS_From_IPersistStorage(DataCache, iface);
     
    14091410 * DataCache_Save (IPersistStorage)
    14101411 *
    1411  * Until we actully connect to a running object and retrieve new 
     1412 * Until we actully connect to a running object and retrieve new
    14121413 * information to it, we never have to save anything. However, it is
    14131414 * our responsability to copy the information when saving to a new
     
    14161417 * See Windows documentation for more details on IPersistStorage methods.
    14171418 */
    1418 static HRESULT WINAPI DataCache_Save( 
     1419static HRESULT WINAPI DataCache_Save(
    14191420            IPersistStorage* iface,
    1420             IStorage*        pStg,
    1421             BOOL             fSameAsLoad)
     1421        IStorage*        pStg,
     1422        BOOL             fSameAsLoad)
    14221423{
    14231424  _ICOM_THIS_From_IPersistStorage(DataCache, iface);
     
    14251426  TRACE("(%p, %p, %d)\n", iface, pStg, fSameAsLoad);
    14261427
    1427   if ( (!fSameAsLoad) && 
     1428  if ( (!fSameAsLoad) &&
    14281429       (this->presentationStorage!=NULL) )
    14291430  {
    14301431    return IStorage_CopyTo(this->presentationStorage,
    1431                            0,
    1432                            NULL,
    1433                            NULL,
    1434                            pStg);
     1432               0,
     1433               NULL,
     1434               NULL,
     1435               pStg);
    14351436  }
    14361437
     
    14461447 * See Windows documentation for more details on IPersistStorage methods.
    14471448 */
    1448 static HRESULT WINAPI DataCache_SaveCompleted( 
    1449             IPersistStorage* iface, 
    1450             IStorage*        pStgNew)
     1449static HRESULT WINAPI DataCache_SaveCompleted(
     1450            IPersistStorage* iface,
     1451        IStorage*        pStgNew)
    14511452{
    14521453  TRACE("(%p, %p)\n", iface, pStgNew);
     
    15111512  _ICOM_THIS_From_IViewObject2(DataCache, iface);
    15121513
    1513   return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); 
     1514  return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
    15141515}
    15151516
     
    15191520 * See Windows documentation for more details on IUnknown methods.
    15201521 */
    1521 static ULONG WINAPI DataCache_IViewObject2_AddRef( 
     1522static ULONG WINAPI DataCache_IViewObject2_AddRef(
    15221523            IViewObject2* iface)
    15231524{
    15241525  _ICOM_THIS_From_IViewObject2(DataCache, iface);
    15251526
    1526   return IUnknown_AddRef(this->outerUnknown); 
     1527  return IUnknown_AddRef(this->outerUnknown);
    15271528}
    15281529
     
    15321533 * See Windows documentation for more details on IUnknown methods.
    15331534 */
    1534 static ULONG WINAPI DataCache_IViewObject2_Release( 
     1535static ULONG WINAPI DataCache_IViewObject2_Release(
    15351536            IViewObject2* iface)
    15361537{
    15371538  _ICOM_THIS_From_IViewObject2(DataCache, iface);
    15381539
    1539   return IUnknown_Release(this->outerUnknown); 
     1540  return IUnknown_Release(this->outerUnknown);
    15401541}
    15411542
     
    15501551static HRESULT WINAPI DataCache_Draw(
    15511552            IViewObject2*    iface,
    1552             DWORD            dwDrawAspect,
    1553             LONG             lindex,
    1554             void*            pvAspect,
    1555             DVTARGETDEVICE*  ptd,
    1556             HDC              hdcTargetDev,
    1557             HDC              hdcDraw,
    1558             LPCRECTL         lprcBounds,
    1559             LPCRECTL         lprcWBounds,
    1560             IVO_ContCallback pfnContinue,
    1561             DWORD            dwContinue)
     1553        DWORD            dwDrawAspect,
     1554        LONG             lindex,
     1555        void*            pvAspect,
     1556        DVTARGETDEVICE*  ptd,
     1557        HDC              hdcTargetDev,
     1558        HDC              hdcDraw,
     1559        LPCRECTL         lprcBounds,
     1560        LPCRECTL         lprcWBounds,
     1561        IVO_ContCallback pfnContinue,
     1562        DWORD            dwContinue)
    15621563{
    15631564  PresentationDataHeader presData;
     
    15681569
    15691570  TRACE("(%p, %lx, %ld, %p, %x, %x, %p, %p, %p, %lx)\n",
    1570         iface,
    1571         dwDrawAspect,
    1572         lindex,
    1573         pvAspect,
    1574         hdcTargetDev,
    1575         hdcDraw,
    1576         lprcBounds,
    1577         lprcWBounds,
    1578         pfnContinue,
    1579         dwContinue);
     1571    iface,
     1572    dwDrawAspect,
     1573    lindex,
     1574    pvAspect,
     1575    hdcTargetDev,
     1576    hdcDraw,
     1577    lprcBounds,
     1578    lprcWBounds,
     1579    pfnContinue,
     1580    dwContinue);
    15801581
    15811582  /*
     
    15901591   */
    15911592  hres = DataCache_ReadPresentationData(this,
    1592                                         dwDrawAspect,
    1593                                         &presData);
     1593                    dwDrawAspect,
     1594                    &presData);
    15941595
    15951596  if (FAILED(hres))
     
    16041605   */
    16051606  presMetafile = DataCache_ReadPresMetafile(this,
    1606                                             dwDrawAspect);
     1607                        dwDrawAspect);
    16071608
    16081609  /*
     
    16191620
    16201621    SetWindowExtEx(hdcDraw,
    1621                    presData.dwObjectExtentX,
    1622                    presData.dwObjectExtentY,
    1623                    &oldWindowExt);
    1624 
    1625     SetViewportExtEx(hdcDraw, 
    1626                      lprcBounds->right - lprcBounds->left,
    1627                      lprcBounds->bottom - lprcBounds->top,
    1628                      &oldViewportExt);
     1622           presData.dwObjectExtentX,
     1623           presData.dwObjectExtentY,
     1624           &oldWindowExt);
     1625
     1626    SetViewportExtEx(hdcDraw,
     1627             lprcBounds->right - lprcBounds->left,
     1628             lprcBounds->bottom - lprcBounds->top,
     1629             &oldViewportExt);
    16291630
    16301631    SetViewportOrgEx(hdcDraw,
    1631                      lprcBounds->left,
    1632                      lprcBounds->top,
    1633                      &oldViewportOrg);
     1632             lprcBounds->left,
     1633             lprcBounds->top,
     1634             &oldViewportOrg);
    16341635
    16351636    PlayMetaFile(hdcDraw, presMetafile);
    16361637
    16371638    SetWindowExtEx(hdcDraw,
    1638                    oldWindowExt.cx,
    1639                    oldWindowExt.cy,
    1640                    NULL);
    1641 
    1642     SetViewportExtEx(hdcDraw, 
    1643                      oldViewportExt.cx,
    1644                      oldViewportExt.cy,
    1645                      NULL);
     1639           oldWindowExt.cx,
     1640           oldWindowExt.cy,
     1641           NULL);
     1642
     1643    SetViewportExtEx(hdcDraw,
     1644             oldViewportExt.cx,
     1645             oldViewportExt.cy,
     1646             NULL);
    16461647
    16471648    SetViewportOrgEx(hdcDraw,
    1648                      oldViewportOrg.x,
    1649                      oldViewportOrg.y,
    1650                      NULL);
     1649             oldViewportOrg.x,
     1650             oldViewportOrg.y,
     1651             NULL);
    16511652
    16521653    SetMapMode(hdcDraw, prevMapMode);
     
    16591660
    16601661static HRESULT WINAPI DataCache_GetColorSet(
    1661             IViewObject2*   iface, 
    1662             DWORD           dwDrawAspect,
    1663             LONG            lindex,
    1664             void*           pvAspect,
    1665             DVTARGETDEVICE* ptd,
    1666             HDC             hicTargetDevice,
    1667             LOGPALETTE**    ppColorSet)
     1662            IViewObject2*   iface,
     1663        DWORD           dwDrawAspect,
     1664        LONG            lindex,
     1665        void*           pvAspect,
     1666        DVTARGETDEVICE* ptd,
     1667        HDC             hicTargetDevice,
     1668        LOGPALETTE**    ppColorSet)
    16681669{
    16691670  FIXME("stub\n");
     
    16731674static HRESULT WINAPI DataCache_Freeze(
    16741675            IViewObject2*   iface,
    1675             DWORD           dwDrawAspect,
    1676             LONG            lindex,
    1677             void*           pvAspect,
    1678             DWORD*          pdwFreeze)
     1676        DWORD           dwDrawAspect,
     1677        LONG            lindex,
     1678        void*           pvAspect,
     1679        DWORD*          pdwFreeze)
    16791680{
    16801681  FIXME("stub\n");
     
    16841685static HRESULT WINAPI DataCache_Unfreeze(
    16851686            IViewObject2*   iface,
    1686             DWORD           dwFreeze)
     1687        DWORD           dwFreeze)
    16871688{
    16881689  FIXME("stub\n");
     
    17001701static HRESULT WINAPI DataCache_SetAdvise(
    17011702            IViewObject2*   iface,
    1702             DWORD           aspects,
    1703             DWORD           advf,
    1704             IAdviseSink*    pAdvSink)
     1703        DWORD           aspects,
     1704        DWORD           advf,
     1705        IAdviseSink*    pAdvSink)
    17051706{
    17061707  _ICOM_THIS_From_IViewObject2(DataCache, iface);
     
    17151716    IAdviseSink_Release(this->sinkInterface);
    17161717    this->sinkInterface  = NULL;
    1717     this->sinkAspects    = 0; 
     1718    this->sinkAspects    = 0;
    17181719    this->sinkAdviseFlag = 0;
    17191720  }
     
    17251726  {
    17261727    this->sinkInterface  = pAdvSink;
    1727     this->sinkAspects    = aspects; 
    1728     this->sinkAdviseFlag = advf;   
     1728    this->sinkAspects    = aspects;
     1729    this->sinkAdviseFlag = advf;
    17291730
    17301731    IAdviseSink_AddRef(this->sinkInterface);
     
    17381739  {
    17391740    DataCache_FireOnViewChange(this,
    1740                                DVASPECT_CONTENT,
    1741                                -1);
     1741                   DVASPECT_CONTENT,
     1742                   -1);
    17421743  }
    17431744
     
    17481749 * DataCache_GetAdvise (IViewObject2)
    17491750 *
    1750  * This method queries the current state of the advise sink 
     1751 * This method queries the current state of the advise sink
    17511752 * installed on the data cache.
    17521753 *
     
    17541755 */
    17551756static HRESULT WINAPI DataCache_GetAdvise(
    1756             IViewObject2*   iface, 
    1757             DWORD*          pAspects,
    1758             DWORD*          pAdvf,
    1759             IAdviseSink**   ppAdvSink)
     1757            IViewObject2*   iface,
     1758        DWORD*          pAspects,
     1759        DWORD*          pAdvf,
     1760        IAdviseSink**   ppAdvSink)
    17601761{
    17611762  _ICOM_THIS_From_IViewObject2(DataCache, iface);
     
    17741775  if (ppAdvSink!=NULL)
    17751776  {
    1776     IAdviseSink_QueryInterface(this->sinkInterface, 
    1777                                &IID_IAdviseSink,
    1778                                (void**)ppAdvSink);
     1777    IAdviseSink_QueryInterface(this->sinkInterface,
     1778                   &IID_IAdviseSink,
     1779                   (void**)ppAdvSink);
    17791780  }
    17801781
     
    17901791 */
    17911792static HRESULT WINAPI DataCache_GetExtent(
    1792             IViewObject2*   iface, 
    1793             DWORD           dwDrawAspect,
    1794             LONG            lindex,
    1795             DVTARGETDEVICE* ptd,
    1796             LPSIZEL         lpsizel)
     1793            IViewObject2*   iface,
     1794        DWORD           dwDrawAspect,
     1795        LONG            lindex,
     1796        DVTARGETDEVICE* ptd,
     1797        LPSIZEL         lpsizel)
    17971798{
    17981799  PresentationDataHeader presData;
     
    18011802  _ICOM_THIS_From_IViewObject2(DataCache, iface);
    18021803
    1803   TRACE("(%p, %lx, %ld, %p, %p)\n", 
    1804         iface, dwDrawAspect, lindex, ptd, lpsizel);
     1804  TRACE("(%p, %lx, %ld, %p, %p)\n",
     1805    iface, dwDrawAspect, lindex, ptd, lpsizel);
    18051806
    18061807  /*
     
    18281829  if (ptd!=NULL)
    18291830    FIXME("Unimplemented ptd = %p\n", ptd);
    1830  
    1831   /*
    1832    * Get the presentation information from the 
     1831
     1832  /*
     1833   * Get the presentation information from the
    18331834   * cache.
    18341835   */
    18351836  hres = DataCache_ReadPresentationData(this,
    1836                                         dwDrawAspect,
    1837                                         &presData);
     1837                    dwDrawAspect,
     1838                    &presData);
    18381839
    18391840  if (SUCCEEDED(hres))
     
    18701871  _ICOM_THIS_From_IOleCache2(DataCache, iface);
    18711872
    1872   return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); 
     1873  return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
    18731874}
    18741875
     
    18781879 * See Windows documentation for more details on IUnknown methods.
    18791880 */
    1880 static ULONG WINAPI DataCache_IOleCache2_AddRef( 
     1881static ULONG WINAPI DataCache_IOleCache2_AddRef(
    18811882            IOleCache2*     iface)
    18821883{
    18831884  _ICOM_THIS_From_IOleCache2(DataCache, iface);
    18841885
    1885   return IUnknown_AddRef(this->outerUnknown); 
     1886  return IUnknown_AddRef(this->outerUnknown);
    18861887}
    18871888
     
    18911892 * See Windows documentation for more details on IUnknown methods.
    18921893 */
    1893 static ULONG WINAPI DataCache_IOleCache2_Release( 
     1894static ULONG WINAPI DataCache_IOleCache2_Release(
    18941895            IOleCache2*     iface)
    18951896{
    18961897  _ICOM_THIS_From_IOleCache2(DataCache, iface);
    18971898
    1898   return IUnknown_Release(this->outerUnknown); 
     1899  return IUnknown_Release(this->outerUnknown);
    18991900}
    19001901
    19011902static HRESULT WINAPI DataCache_Cache(
    19021903            IOleCache2*     iface,
    1903             FORMATETC*      pformatetc,
    1904             DWORD           advf,
    1905             DWORD*          pdwConnection)
     1904        FORMATETC*      pformatetc,
     1905        DWORD           advf,
     1906        DWORD*          pdwConnection)
    19061907{
    19071908  FIXME("stub\n");
     
    19101911
    19111912static HRESULT WINAPI DataCache_Uncache(
    1912             IOleCache2*     iface,
    1913             DWORD           dwConnection)
     1913        IOleCache2*     iface,
     1914        DWORD           dwConnection)
    19141915{
    19151916  FIXME("stub\n");
     
    19191920static HRESULT WINAPI DataCache_EnumCache(
    19201921            IOleCache2*     iface,
    1921             IEnumSTATDATA** ppenumSTATDATA)
     1922        IEnumSTATDATA** ppenumSTATDATA)
    19221923{
    19231924  FIXME("stub\n");
     
    19261927
    19271928static HRESULT WINAPI DataCache_InitCache(
    1928             IOleCache2*     iface,
    1929             IDataObject*    pDataObject)
     1929        IOleCache2*     iface,
     1930        IDataObject*    pDataObject)
    19301931{
    19311932  FIXME("stub\n");
     
    19351936static HRESULT WINAPI DataCache_IOleCache2_SetData(
    19361937            IOleCache2*     iface,
    1937             FORMATETC*      pformatetc,
    1938             STGMEDIUM*      pmedium,
    1939             BOOL            fRelease)
     1938        FORMATETC*      pformatetc,
     1939        STGMEDIUM*      pmedium,
     1940        BOOL            fRelease)
    19401941{
    19411942  FIXME("stub\n");
     
    19451946static HRESULT WINAPI DataCache_UpdateCache(
    19461947            IOleCache2*     iface,
    1947             LPDATAOBJECT    pDataObject,
    1948             DWORD           grfUpdf,
    1949             LPVOID          pReserved)
     1948        LPDATAOBJECT    pDataObject,
     1949        DWORD           grfUpdf,
     1950        LPVOID          pReserved)
    19501951{
    19511952  FIXME("stub\n");
     
    19551956static HRESULT WINAPI DataCache_DiscardCache(
    19561957            IOleCache2*     iface,
    1957             DWORD           dwDiscardOptions)
     1958        DWORD           dwDiscardOptions)
    19581959{
    19591960  FIXME("stub\n");
     
    19791980  _ICOM_THIS_From_IOleCacheControl(DataCache, iface);
    19801981
    1981   return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject); 
     1982  return IUnknown_QueryInterface(this->outerUnknown, riid, ppvObject);
    19821983}
    19831984
     
    19871988 * See Windows documentation for more details on IUnknown methods.
    19881989 */
    1989 static ULONG WINAPI DataCache_IOleCacheControl_AddRef( 
     1990static ULONG WINAPI DataCache_IOleCacheControl_AddRef(
    19901991            IOleCacheControl* iface)
    19911992{
    19921993  _ICOM_THIS_From_IOleCacheControl(DataCache, iface);
    19931994
    1994   return IUnknown_AddRef(this->outerUnknown); 
     1995  return IUnknown_AddRef(this->outerUnknown);
    19951996}
    19961997
     
    20002001 * See Windows documentation for more details on IUnknown methods.
    20012002 */
    2002 static ULONG WINAPI DataCache_IOleCacheControl_Release( 
     2003static ULONG WINAPI DataCache_IOleCacheControl_Release(
    20032004            IOleCacheControl* iface)
    20042005{
    20052006  _ICOM_THIS_From_IOleCacheControl(DataCache, iface);
    20062007
    2007   return IUnknown_Release(this->outerUnknown); 
     2008  return IUnknown_Release(this->outerUnknown);
    20082009}
    20092010
    20102011static HRESULT WINAPI DataCache_OnRun(
    2011             IOleCacheControl* iface,
    2012             LPDATAOBJECT      pDataObject)
     2012        IOleCacheControl* iface,
     2013        LPDATAOBJECT      pDataObject)
    20132014{
    20142015  FIXME("stub\n");
     
    20172018
    20182019static HRESULT WINAPI DataCache_OnStop(
    2019             IOleCacheControl* iface)
     2020        IOleCacheControl* iface)
    20202021{
    20212022  FIXME("stub\n");
Note: See TracChangeset for help on using the changeset viewer.