Changeset 3591 for trunk/src


Ignore:
Timestamp:
May 22, 2000, 9:30:53 PM (25 years ago)
Author:
sandervl
Message:

PUT BACK MY OLD CHANGES AGAIN

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/comctl32/comctl32undoc.cpp

    r3585 r3591  
    1 /* $Id: comctl32undoc.cpp,v 1.4 2000-05-22 17:25:07 cbratschi Exp $ */
     1/* $Id: comctl32undoc.cpp,v 1.5 2000-05-22 19:30:53 sandervl Exp $ */
    22/*
    33 * Undocumented functions from COMCTL32.DLL
     
    3131#include <wcstr.h>
    3232#include <wctype.h>
     33#define CINTERFACE 1
     34#include "objbase.h"
     35#include "commctrl.h"
     36#include "crtdll.h"
     37#include "debugtools.h"
     38#include "winerror.h"
    3339
    3440extern HANDLE COMCTL32_hHeap; /* handle to the private heap */
     41
     42typedef struct _STREAMDATA
     43{
     44    DWORD dwSize;
     45    DWORD dwData2;
     46    DWORD dwItems;
     47} STREAMDATA, *PSTREAMDATA;
     48
     49typedef struct _LOADDATA
     50{
     51    INT   nCount;
     52    PVOID ptr;
     53} LOADDATA, *LPLOADDATA;
     54
     55typedef HRESULT( CALLBACK * DPALOADPROC)(LPLOADDATA,IStream*,LPARAM);
     56
     57
     58/**************************************************************************
     59 * DPA_LoadStream [COMCTL32.9]
     60 *
     61 * Loads a dynamic pointer array from a stream
     62 *
     63 * PARAMS
     64 *     phDpa    [O] pointer to a handle to a dynamic pointer array
     65 *     loadProc [I] pointer to a callback function
     66 *     pStream  [I] pointer to a stream
     67 *     lParam   [I] application specific value
     68 *
     69 * NOTES
     70 *     No more information available yet!
     71 */
     72
     73HRESULT WINAPI
     74DPA_LoadStream (HDPA *phDpa, DPALOADPROC loadProc, IStream *pStream, LPARAM lParam)
     75{
     76    HRESULT errCode;
     77    LARGE_INTEGER position;
     78    ULARGE_INTEGER newPosition;
     79    STREAMDATA  streamData;
     80    LOADDATA loadData;
     81    ULONG ulRead;
     82    HDPA hDpa;
     83    PVOID *ptr;
     84
     85    FIXME ("phDpa=%p loadProc=%p pStream=%p lParam=%lx\n",
     86           phDpa, loadProc, pStream, lParam);
     87
     88    if (!phDpa || !loadProc || !pStream)
     89        return E_INVALIDARG;
     90
     91    *phDpa = (HDPA)NULL;
     92
     93    position.LowPart = 0;
     94    position.HighPart = 0;
     95
     96    errCode = IStream_Seek (pStream, position, STREAM_SEEK_CUR, &newPosition);
     97    if (errCode != S_OK)
     98        return errCode;
     99
     100    errCode = IStream_Read (pStream, &streamData, sizeof(STREAMDATA), &ulRead);
     101    if (errCode != S_OK)
     102        return errCode;
     103
     104    FIXME ("dwSize=%lu dwData2=%lu dwItems=%lu\n",
     105           streamData.dwSize, streamData.dwData2, streamData.dwItems);
     106
     107    if (lParam < sizeof(STREAMDATA) ||
     108        streamData.dwSize < sizeof(STREAMDATA) ||
     109        streamData.dwData2 < 1) {
     110        errCode = E_FAIL;
     111    }
     112
     113    /* create the dpa */
     114    hDpa = DPA_Create (streamData.dwItems);
     115    if (!hDpa)
     116        return E_OUTOFMEMORY;
     117
     118    if (!DPA_Grow (hDpa, streamData.dwItems))
     119        return E_OUTOFMEMORY;
     120
     121    /* load data from the stream into the dpa */
     122    ptr = hDpa->ptrs;
     123    for (loadData.nCount = 0; loadData.nCount < streamData.dwItems; loadData.nCount++) {
     124        errCode = (loadProc)(&loadData, pStream, lParam);
     125        if (errCode != S_OK) {
     126            errCode = S_FALSE;
     127            break;
     128        }
     129
     130        *ptr = loadData.ptr;
     131        ptr++;
     132    }
     133
     134    /* set the number of items */
     135    hDpa->nItemCount = loadData.nCount;
     136
     137    /* store the handle to the dpa */
     138    *phDpa = hDpa;
     139    FIXME ("new hDpa=%p\n", hDpa);
     140
     141    return errCode;
     142}
     143
     144
     145/**************************************************************************
     146 * DPA_SaveStream [COMCTL32.10]
     147 *
     148 * Saves a dynamic pointer array to a stream
     149 *
     150 * PARAMS
     151 *     hDpa     [I] handle to a dynamic pointer array
     152 *     loadProc [I] pointer to a callback function
     153 *     pStream  [I] pointer to a stream
     154 *     lParam   [I] application specific value
     155 *
     156 * NOTES
     157 *     No more information available yet!
     158 */
     159
     160HRESULT WINAPI
     161DPA_SaveStream (const HDPA hDpa, DPALOADPROC loadProc, IStream *pStream, LPARAM lParam)
     162{
     163
     164    FIXME ("hDpa=%p loadProc=%p pStream=%p lParam=%lx\n",
     165           hDpa, loadProc, pStream, lParam);
     166
     167    return E_FAIL;
     168}
    35169
    36170/**************************************************************************
     
    23992533   return TRUE;
    24002534}
     2535
     2536DWORD WINAPI comctl32_389(DWORD x1, DWORD x2)
     2537{
     2538   dprintf(("comctl32_389: %x %X not implemented!!", x1, x2));
     2539   return 0; //NT 4 comctl32 returns 0
     2540}
     2541
     2542DWORD WINAPI comctl32_390(DWORD x1, DWORD x2, DWORD x3, DWORD x4)
     2543{
     2544   dprintf(("comctl32_390: %x %x %x %x not implemented!!", x1, x2, x3, x4));
     2545   return 0;
     2546}
Note: See TracChangeset for help on using the changeset viewer.