Changeset 1824 for trunk/src


Ignore:
Timestamp:
Nov 23, 1999, 9:46:04 PM (26 years ago)
Author:
davidr
Message:

Split each state class into a single source

Location:
trunk/src/oleaut32
Files:
5 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/oleaut32/iPicture.cpp

    r1743 r1824  
    1 /* $Id: iPicture.cpp,v 1.2 1999-11-14 21:05:08 davidr Exp $ */
     1/* $Id: iPicture.cpp,v 1.3 1999-11-23 20:45:23 davidr Exp $ */
    22/*
    33 * OLE Picture functions
     
    3434static void             IPictureImpl_Destructor(IPictureImpl * obj);
    3535
    36 static ULONG   WIN32API IPictureImpl_AddRef(LPPICTURE iface);
    3736static HRESULT WIN32API IPictureImpl_QueryInterface(LPPICTURE iface,
    3837                                REFIID refiid, LPVOID * obj);
     
    162161
    163162// ----------------------------------------------------------------------
    164 // Uninitialised Picture
    165 // ----------------------------------------------------------------------
    166 HRESULT IPictureNone::get_Handle(OLE_HANDLE * pHandle)
    167 {
    168     *pHandle = 0;
    169     return E_FAIL;
    170 }
    171 
    172 HRESULT IPictureNone::get_hPal(OLE_HANDLE * phPal)
    173 {
    174     *phPal = 0;
    175     return E_FAIL;
    176 }
    177 
    178 HRESULT IPictureNone::get_Type(SHORT * pType)
    179 {
    180     *pType = PICTYPE_UNINITIALIZED;
    181     return S_OK;
    182 }
    183 
    184 HRESULT IPictureNone::get_Width(OLE_XSIZE_HIMETRIC * pWidth)
    185 {
    186     *pWidth = 0;
    187     return E_FAIL;
    188 }
    189 
    190 HRESULT IPictureNone::get_Height(OLE_YSIZE_HIMETRIC * pHeight)
    191 {
    192     *pHeight = 0;
    193     return E_FAIL;
    194 }
    195 
    196 HRESULT IPictureNone::Render(HDC hdc, LONG x, LONG y, LONG cx, LONG cy,
    197                                 OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc,
    198                                 OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc,
    199                                 LPCRECT pRcWBounds)
    200 {
    201     return E_FAIL;
    202 }
    203 
    204 HRESULT IPictureNone::set_hPal(OLE_HANDLE hPal)
    205 {
    206     return E_FAIL;
    207 }
    208 
    209 HRESULT IPictureNone::SaveAsFile(LPSTREAM pStream, BOOL fSaveMemCopy, LONG * pCbSize)
    210 {
    211     return E_FAIL;
    212 }
    213 
    214 HRESULT IPictureNone::get_Attributes(DWORD * pDwAttr)
    215 {
    216     *pDwAttr = 0;
    217     return S_OK;
    218 }
    219 
    220 IPictureBmp::IPictureBmp(IPictureImpl * a_pPicture, HBITMAP hbitmap, HPALETTE hpal)
    221     : IPictureStrat(a_pPicture)
    222 {
    223     pPicture->u.bmp.hbitmap = hbitmap;
    224     pPicture->u.bmp.hpal = hpal;
    225 }
    226 
    227 // ----------------------------------------------------------------------
    228 // Icon Picture
    229 // ----------------------------------------------------------------------
    230 IPictureBmp::~IPictureBmp()
    231 {
    232     if (pPicture->fOwn)
    233     {
    234         // Free bitmap...
    235         DeleteObject(pPicture->u.bmp.hbitmap);
    236         DeleteObject(pPicture->u.bmp.hpal);
    237     }
    238 }
    239 
    240 HRESULT IPictureBmp::get_Handle(OLE_HANDLE * pHandle)
    241 {
    242     *pHandle = pPicture->u.bmp.hbitmap;
    243     return S_OK;
    244 }
    245 
    246 HRESULT IPictureBmp::get_hPal(OLE_HANDLE * phPal)
    247 {
    248     *phPal = pPicture->u.bmp.hpal;
    249     return S_OK;
    250 }
    251 
    252 HRESULT IPictureBmp::get_Type(SHORT * pType)
    253 {
    254     *pType = PICTYPE_BITMAP;
    255     return S_OK;
    256 }
    257 
    258 HRESULT IPictureBmp::get_Width(OLE_XSIZE_HIMETRIC * pWidth)
    259 {
    260     SIZE        size;
    261 
    262     if (GetBitmapDimensionEx( pPicture->u.bmp.hbitmap, &size) == 0)
    263     {
    264         *pWidth = 0;
    265         return E_FAIL;
    266     }
    267 
    268     *pWidth = size.cx;
    269 
    270     return S_OK;
    271 }
    272 
    273 HRESULT IPictureBmp::get_Height(OLE_YSIZE_HIMETRIC * pHeight)
    274 {
    275     SIZE        size;
    276 
    277     if (GetBitmapDimensionEx( pPicture->u.bmp.hbitmap, &size) == 0)
    278     {
    279         *pHeight = 0;
    280         return E_FAIL;
    281     }
    282 
    283     *pHeight = size.cy;
    284 
    285     return S_OK;
    286 }
    287 
    288 HRESULT IPictureBmp::Render(HDC hdc, LONG x, LONG y, LONG cx, LONG cy,
    289                                 OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc,
    290                                 OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc,
    291                                 LPCRECT pRcWBounds)
    292 {
    293     return E_FAIL;
    294 }
    295 
    296 HRESULT IPictureBmp::set_hPal(OLE_HANDLE hPal)
    297 {
    298     pPicture->u.bmp.hpal = hPal;
    299     return S_OK;
    300 }
    301 
    302 HRESULT IPictureBmp::SaveAsFile(LPSTREAM pStream, BOOL fSaveMemCopy, LONG * pCbSize)
    303 {
    304     return E_FAIL;
    305 }
    306 
    307 HRESULT IPictureBmp::get_Attributes(DWORD * pDwAttr)
    308 {
    309     // Although bitmaps may be scaled, it is really stretching.
    310     *pDwAttr = 0;
    311     return S_OK;
    312 }
    313 
    314 // ----------------------------------------------------------------------
    315 // Metafile Picture
    316 // ----------------------------------------------------------------------
    317 IPictureIcon::IPictureIcon(IPictureImpl * a_pPicture, HICON hicon)
    318     : IPictureStrat(a_pPicture)
    319 {
    320     pPicture->u.icon.hicon = hicon;
    321 }
    322 
    323 IPictureIcon::~IPictureIcon()
    324 {
    325     if (pPicture->fOwn)
    326     {
    327         // Free icon...
    328         DestroyIcon(pPicture->u.icon.hicon);
    329     }
    330 }
    331 
    332 HRESULT IPictureIcon::get_Handle(OLE_HANDLE * pHandle)
    333 {
    334     *pHandle = pPicture->u.icon.hicon;
    335     return S_OK;
    336 }
    337 
    338 HRESULT IPictureIcon::get_hPal(OLE_HANDLE * phPal)
    339 {
    340     *phPal = 0;
    341     return S_OK;
    342 }
    343 
    344 HRESULT IPictureIcon::get_Type(SHORT * pType)
    345 {
    346     *pType = PICTYPE_ICON;
    347     return S_OK;
    348 }
    349 
    350 HRESULT IPictureIcon::get_Width(OLE_XSIZE_HIMETRIC * pWidth)
    351 {
    352     // FIXME - Read from system constants...
    353     *pWidth = 32;
    354 
    355     return S_OK;
    356 }
    357 
    358 HRESULT IPictureIcon::get_Height(OLE_YSIZE_HIMETRIC * pHeight)
    359 {
    360     // FIXME - Read from system constants...
    361     *pHeight = 32;
    362 
    363     return S_OK;
    364 }
    365 
    366 HRESULT IPictureIcon::Render(HDC hdc, LONG x, LONG y, LONG cx, LONG cy,
    367                                 OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc,
    368                                 OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc,
    369                                 LPCRECT pRcWBounds)
    370 {
    371     return E_FAIL;
    372 }
    373 
    374 HRESULT IPictureIcon::set_hPal(OLE_HANDLE hPal)
    375 {
    376     return E_FAIL;
    377 }
    378 
    379 HRESULT IPictureIcon::SaveAsFile(LPSTREAM pStream, BOOL fSaveMemCopy, LONG * pCbSize)
    380 {
    381     return E_FAIL;
    382 }
    383 
    384 HRESULT IPictureIcon::get_Attributes(DWORD * pDwAttr)
    385 {
    386     *pDwAttr = PICTURE_TRANSPARENT;
    387     return S_OK;
    388 }
    389 
    390 // ----------------------------------------------------------------------
    391 // Enhanced Metafile Picture
    392 // ----------------------------------------------------------------------
    393 
    394 IPictureMeta::IPictureMeta(IPictureImpl * a_pPicture, HMETAFILE hmeta, int xExt, int yExt)
    395     : IPictureStrat(a_pPicture)
    396 {
    397     pPicture->u.wmf.hmeta = hmeta;
    398     pPicture->u.wmf.xExt = xExt;
    399     pPicture->u.wmf.yExt = yExt;
    400 }
    401 
    402 IPictureMeta::~IPictureMeta()
    403 {
    404     if (pPicture->fOwn)
    405     {
    406         // Free metafile...
    407         DeleteMetaFile(pPicture->u.wmf.hmeta);
    408     }
    409 }
    410 
    411 HRESULT IPictureMeta::get_Handle(OLE_HANDLE * pHandle)
    412 {
    413     *pHandle = pPicture->u.wmf.hmeta;
    414     return S_OK;
    415 }
    416 
    417 HRESULT IPictureMeta::get_hPal(OLE_HANDLE * phPal)
    418 {
    419     *phPal = 0;
    420     return E_FAIL;
    421 }
    422 
    423 HRESULT IPictureMeta::get_Type(SHORT * pType)
    424 {
    425     *pType = PICTYPE_METAFILE;
    426     return S_OK;
    427 }
    428 
    429 HRESULT IPictureMeta::get_Width(OLE_XSIZE_HIMETRIC * pWidth)
    430 {
    431     *pWidth = pPicture->u.wmf.xExt;
    432     return S_OK;
    433 }
    434 
    435 HRESULT IPictureMeta::get_Height(OLE_YSIZE_HIMETRIC * pHeight)
    436 {
    437     *pHeight = pPicture->u.wmf.yExt;
    438     return S_OK;
    439 }
    440 
    441 HRESULT IPictureMeta::Render(HDC hdc, LONG x, LONG y, LONG cx, LONG cy,
    442                                 OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc,
    443                                 OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc,
    444                                 LPCRECT pRcWBounds)
    445 {
    446     return E_FAIL;
    447 }
    448 
    449 HRESULT IPictureMeta::set_hPal(OLE_HANDLE hPal)
    450 {
    451     return E_FAIL;
    452 }
    453 
    454 HRESULT IPictureMeta::SaveAsFile(LPSTREAM pStream, BOOL fSaveMemCopy, LONG * pCbSize)
    455 {
    456     return E_FAIL;
    457 }
    458 
    459 HRESULT IPictureMeta::get_Attributes(DWORD * pDwAttr)
    460 {
    461     *pDwAttr = PICTURE_SCALEABLE | PICTURE_TRANSPARENT;
    462     return S_OK;
    463 }
    464 
    465 // ----------------------------------------------------------------------
    466163// IPictureImpl_QueryInterface
    467164// ----------------------------------------------------------------------
    468165static IPictureImpl *   IPictureImpl_Constructor(LPPICTDESC description, BOOL fOwn)
    469166{
    470     IPictureImpl *      newObject;
     167    IPictureImpl *      pNewObject;
    471168
    472169    // Allocate a new object on the heap...
    473     if ((newObject = (IPictureImpl *)HeapAlloc(GetProcessHeap(), 0, sizeof(IPictureImpl))) == 0)
     170    if ((pNewObject = (IPictureImpl *)HeapAlloc(GetProcessHeap(), 0, sizeof(IPictureImpl))) == 0)
    474171        return 0;
    475172
    476     dprintf(("OLEAUT32: IPictureImpl(%p)->Contructor(fOwn = %d)\n", newObject, fOwn));
     173    dprintf(("OLEAUT32: IPictureImpl(%p)->Contructor(fOwn = %d)\n", pNewObject, fOwn));
    477174
    478175    // Initialise the vft's
    479     newObject->lpvtbl1 = &IPictureImpl_VTable;
    480     newObject->lpvtbl2 = &IPictureImpl_IDispatch_VTable;
    481     newObject->lpvtbl3 = &IPictureImpl_IPersistStream_VTable;
     176    pNewObject->lpvtbl1 = &IPictureImpl_VTable;
     177    pNewObject->lpvtbl2 = &IPictureImpl_IDispatch_VTable;
     178    pNewObject->lpvtbl3 = &IPictureImpl_IPersistStream_VTable;
    482179
    483180    // Initial reference count of 1...
    484     newObject->ref = 1;
    485     newObject->fOwn = fOwn;
     181    pNewObject->ref = 1;
     182    pNewObject->fOwn = fOwn;
    486183
    487184    // If a description is not passed then leave the picture uninitialised...
    488185    if (description == 0)
    489         newObject->pStrat = new IPictureNone(newObject);
     186        pNewObject->pStrat = new IPictureNone(pNewObject);
    490187    else
    491188    {
     
    493190        if (description->cbSizeofstruct < sizeof(PICTDESC))
    494191        {
    495             dprintf(("OLEAUT32: IPictureImpl(%p)->Constructor - Invalid cbSizeofstruct!", newObject));
     192            dprintf(("OLEAUT32: IPictureImpl(%p)->Constructor - Invalid cbSizeofstruct!", pNewObject));
    496193            return 0;
    497194        }
     
    499196        {
    500197            case PICTYPE_BITMAP:
    501                 newObject->pStrat = new IPictureBmp(
    502                                             newObject,
     198                pNewObject->pStrat = new IPictureBmp(
     199                                            pNewObject,
    503200                                            description->u.bmp.hbitmap,
    504201                                            description->u.bmp.hpal);
     
    506203
    507204            case PICTYPE_METAFILE:
    508                 newObject->pStrat = new IPictureMeta(newObject,
     205                pNewObject->pStrat = new IPictureMeta(pNewObject,
    509206                                            description->u.wmf.hmeta,
    510207                                            description->u.wmf.xExt,
     
    513210
    514211            case PICTYPE_ICON:
    515                 newObject->pStrat = new IPictureIcon(newObject,
     212                pNewObject->pStrat = new IPictureIcon(pNewObject,
    516213                                            description->u.icon.hicon);
    517214                break;
    518215
    519216            case PICTYPE_ENHMETAFILE:
    520                 newObject->pStrat = new IPictureIcon(newObject,
     217                pNewObject->pStrat = new IPictureIcon(pNewObject,
    521218                                            description->u.emf.hemf);
    522219                break;
     
    524221            default:
    525222                // assume uninitialised...
    526                 newObject->pStrat = new IPictureNone(newObject);
     223                pNewObject->pStrat = new IPictureNone(pNewObject);
    527224                break;
    528225        }
    529226    }
    530227
    531     return newObject;
     228    return pNewObject;
    532229}
    533230
     
    535232// IPictureImpl_QueryInterface
    536233// ----------------------------------------------------------------------
    537 static void             IPictureImpl_Destructor(IPictureImpl * obj)
    538 {
    539     dprintf(("OLEAUT32: IPictureImpl(%p)->Destructor()\n", obj));
    540 
    541     delete obj->pStrat;
    542 
    543     HeapFree(GetProcessHeap(), 0, obj);
     234static void             IPictureImpl_Destructor(IPictureImpl * This)
     235{
     236    dprintf(("OLEAUT32: IPictureImpl(%p)->Destructor()\n", This));
     237
     238    delete This->pStrat;
     239
     240    HeapFree(GetProcessHeap(), 0, This);
    544241}
    545242
  • trunk/src/oleaut32/iPicture.h

    r1743 r1824  
    1 /* $Id: iPicture.h,v 1.2 1999-11-14 21:04:43 davidr Exp $ */
     1/* $Id: iPicture.h,v 1.3 1999-11-23 20:46:04 davidr Exp $ */
    22/*
    33 * OLE Picture functions private header
     
    6060    BOOL                fOwn;
    6161    HDC                 hCurDC;
    62     DWORD               lAttrib;
     62    ULONG               lAttrib;
    6363
    6464} IPictureImpl;
     
    234234};
    235235
    236 IPictureEmf::IPictureEmf(IPictureImpl * a_pPicture, HENHMETAFILE hemf)
    237     : IPictureStrat(a_pPicture)
    238 {
    239     pPicture->u.emf.hemf = hemf;
    240 }
    241 
    242 IPictureEmf::~IPictureEmf()
    243 {
    244     if (pPicture->fOwn)
    245     {
    246         // Free metafile...
    247         DeleteEnhMetaFile(pPicture->u.emf.hemf);
    248     }
    249 }
    250 
    251 HRESULT IPictureEmf::get_Handle(OLE_HANDLE * pHandle)
    252 {
    253     *pHandle = pPicture->u.emf.hemf;
    254     return S_OK;
    255 }
    256 
    257 HRESULT IPictureEmf::get_hPal(OLE_HANDLE * phPal)
    258 {
    259     *phPal = 0;
    260     return S_OK;
    261 }
    262 
    263 HRESULT IPictureEmf::get_Type(SHORT * pType)
    264 {
    265     *pType = PICTYPE_ENHMETAFILE;
    266     return S_OK;
    267 }
    268 
    269 HRESULT IPictureEmf::get_Width(OLE_XSIZE_HIMETRIC * pWidth)
    270 {
    271     *pWidth = 0;
    272     return E_FAIL;
    273 }
    274 
    275 HRESULT IPictureEmf::get_Height(OLE_YSIZE_HIMETRIC * pHeight)
    276 {
    277     *pHeight = 0;
    278     return E_FAIL;
    279 }
    280 
    281 HRESULT IPictureEmf::Render(HDC hdc, LONG x, LONG y, LONG cx, LONG cy,
    282                                 OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc,
    283                                 OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc,
    284                                 LPCRECT pRcWBounds)
    285 {
    286     return E_FAIL;
    287 }
    288 
    289 HRESULT IPictureEmf::set_hPal(OLE_HANDLE hPal)
    290 {
    291     return E_FAIL;
    292 }
    293 
    294 HRESULT IPictureEmf::SaveAsFile(LPSTREAM pStream, BOOL fSaveMemCopy, LONG * pCbSize)
    295 {
    296     return E_FAIL;
    297 }
    298 
    299 HRESULT IPictureEmf::get_Attributes(DWORD * pDwAttr)
    300 {
    301     *pDwAttr = PICTURE_SCALEABLE | PICTURE_TRANSPARENT;
    302     return S_OK;
    303 }
    304 
    305236// Access macros
    306237#define _ICOM_THIS(class, name) class* This = (class*)name;
Note: See TracChangeset for help on using the changeset viewer.