Ignore:
Timestamp:
Dec 18, 1999, 9:57:01 PM (26 years ago)
Author:
achimha
Message:

WINE 991212 updates - treeview missing

File:
1 edited

Legend:

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

    r1735 r2126  
    1 /* $Id: comctl32undoc.c,v 1.15 1999-11-14 13:09:59 achimha Exp $ */
     1/* $Id: comctl32undoc.c,v 1.16 1999-12-18 20:56:58 achimha Exp $ */
    22/*
    33 * Undocumented functions from COMCTL32.DLL
     
    1212 */
    1313
    14 /* WINE 991031 level */
     14/* WINE 991212 level */
    1515
    1616/* CB: todo
     
    254254 * lists.
    255255 *
    256  *
    257  */
    258 
    259 typedef struct tagMRUINFO
    260 {
    261     DWORD  dwParam1;
    262     DWORD  dwParam2;
    263     DWORD  dwParam3;
    264     HKEY   hkeyMain;
    265     LPCSTR lpszSubKey;
    266     DWORD  dwParam6;
    267 } MRUINFO, *LPMRUINFO;
    268 
     256 * Stored in the reg. as a set of values under a single key.  Each item in the
     257 * list has a value name that is a single char. 'a' - 'z', '{', '|' or '}'.
     258 * The order of the list is stored with value name 'MRUList' which is a string
     259 * containing the value names (i.e. 'a', 'b', etc.) in the relevant order.
     260 */
     261
     262typedef struct tagCREATEMRULIST
     263{
     264    DWORD  cbSize;        /* size of struct */
     265    DWORD  nMaxItems;     /* max no. of items in list */
     266    DWORD  dwFlags;       /* see below */
     267    HKEY   hKey;          /* root reg. key under which list is saved */
     268    LPCSTR lpszSubKey;    /* reg. subkey */
     269    PROC   lpfnCompare;   /* item compare proc */
     270} CREATEMRULIST, *LPCREATEMRULIST;
     271
     272/* dwFlags */
     273#define MRUF_STRING_LIST  0 /* list will contain strings */
     274#define MRUF_BINARY_LIST  1 /* list will contain binary data */
     275#define MRUF_DELAYED_SAVE 2 /* only save list order to reg. is FreeMRUList */
     276
     277/* If list is a string list lpfnCompare has the following prototype
     278 * int CALLBACK MRUCompareString(LPCSTR s1, LPCSTR s2)
     279 * for binary lists the prototype is
     280 * int CALLBACK MRUCompareBinary(LPCVOID data1, LPCVOID data2, DWORD cbData)
     281 * where cbData is the no. of bytes to compare.
     282 * Need to check what return value means identical - 0?
     283 */
    269284
    270285typedef struct tagMRU
     
    278293} MRU, *HMRU;
    279294
    280 LPVOID WINAPI
    281 CreateMRUListLazyA (LPMRUINFO lpmi, DWORD dwParam2,
    282                     DWORD dwParam3, DWORD dwParam4);
    283 
    284 
    285 /**************************************************************************
    286  * CreateMRUListA [COMCTL32.151]
    287  *
    288  * PARAMS
    289  *     dwParam
    290  *
    291  * RETURNS
    292  */
    293 
    294 LPVOID WINAPI
    295 CreateMRUListA (LPMRUINFO lpmi)
    296 {
    297      return CreateMRUListLazyA (lpmi, 0, 0, 0);
    298 }
    299 
    300 
     295HANDLE WINAPI
     296CreateMRUListLazyA (LPCREATEMRULIST lpcml, DWORD dwParam2,
     297                    DWORD dwParam3, DWORD dwParam4);
     298
     299
     300/**************************************************************************
     301 *              CreateMRUListA [COMCTL32.151]
     302 *
     303 * PARAMS
     304 *     lpcml [I] ptr to CREATEMRULIST structure.
     305 *
     306 * RETURNS
     307 *     Handle to MRU list.
     308 */
     309HANDLE WINAPI
     310CreateMRUListA (LPCREATEMRULIST lpcml)
     311{
     312     return CreateMRUListLazyA (lpcml, 0, 0, 0);
     313}
     314
     315/**************************************************************************
     316 *              FreeMRUListA [COMCTL32.152]
     317 *
     318 * PARAMS
     319 *     hMRUList [I] Handle to list.
     320 *
     321 */
    301322DWORD WINAPI
    302 FreeMRUListA (HMRU hmru)
    303 {
    304 //    FIXME (commctrl, "(%p) empty stub!\n", hmru);
     323FreeMRUListA (HANDLE hMRUList)
     324{
     325    FIXME("(%08x) empty stub!\n", hMRUList);
    305326
    306327#if 0
    307328    if (!(hmru->dwParam1 & 1001)) {
    308         RegSetValueExA (hmru->hKeyMRU, "MRUList", 0, REG_SZ,
    309                           hmru->lpszMRUString,
    310                           lstrlenA (hmru->lpszMRUString));
     329        RegSetValueExA (hmru->hKeyMRU, "MRUList", 0, REG_SZ,
     330                          hmru->lpszMRUString,
     331                          lstrlenA (hmru->lpszMRUString));
    311332    }
    312333
     
    316337#endif
    317338
    318     return COMCTL32_Free (hmru);
    319 }
    320 
    321 
    322 
    323 DWORD WINAPI
    324 AddMRUData (DWORD dwParam1, DWORD dwParam2, DWORD dwParam3)
    325 {
    326 
    327 //    FIXME (commctrl, "(%lx %lx %lx) empty stub!\n",
    328 //         dwParam1, dwParam2, dwParam3);
     339    return COMCTL32_Free ((LPVOID)hMRUList);
     340}
     341
     342
     343/**************************************************************************
     344 *              AddMRUData [COMCTL32.167]
     345 *
     346 * Add item to MRU binary list.  If item already exists in list them it is
     347 * simply moved up to the top of the list and not added again.  If list is
     348 * full then the least recently used item is removed to make room.
     349 *
     350 * PARAMS
     351 *     hList [I] Handle to list.
     352 *     lpData [I] ptr to data to add.
     353 *     cbData [I] no. of bytes of data.
     354 *
     355 * RETURNS
     356 *     No. corresponding to registry name where value is stored 'a' -> 0 etc.
     357 *     -1 on error.
     358 */
     359INT WINAPI
     360AddMRUData (HANDLE hList, LPCVOID lpData, DWORD cbData)
     361{
     362    FIXME("(%08x, %p, %ld) empty stub!\n", hList, lpData, cbData);
    329363
    330364    return 0;
    331365}
    332366
    333 
    334 DWORD WINAPI
    335 FindMRUData (DWORD dwParam1, DWORD dwParam2, DWORD dwParam3, DWORD dwParam4)
    336 {
    337 
    338 //    FIXME (commctrl, "(%lx %lx %lx %lx) empty stub!\n",
    339 //         dwParam1, dwParam2, dwParam3, dwParam4);
    340 
     367/**************************************************************************
     368 *              AddMRUStringA [COMCTL32.153]
     369 *
     370 * Add item to MRU string list.  If item already exists in list them it is
     371 * simply moved up to the top of the list and not added again.  If list is
     372 * full then the least recently used item is removed to make room.
     373 *
     374 * PARAMS
     375 *     hList [I] Handle to list.
     376 *     lpszString [I] ptr to string to add.
     377 *
     378 * RETURNS
     379 *     No. corresponding to registry name where value is stored 'a' -> 0 etc.
     380 *     -1 on error.
     381 */
     382INT WINAPI
     383AddMRUStringA(HANDLE hList, LPCSTR lpszString)
     384{
     385    FIXME("(%08x, %s) empty stub!\n", hList, debugstr_a(lpszString));
     386
     387    return 0;
     388}
     389
     390/**************************************************************************
     391 *              DelMRUString [COMCTL32.156]
     392 *
     393 * Removes item from either string or binary list (despite its name)
     394 *
     395 * PARAMS
     396 *    hList [I] list handle
     397 *    nItemPos [I] item position to remove 0 -> MRU
     398 *
     399 * RETURNS
     400 *    TRUE is successful, FALSE if nItemPos is out of range.
     401 */
     402BOOL WINAPI
     403DelMRUString(HANDLE hList, INT nItemPos)
     404{
     405    FIXME("(%08x, %d): stub\n", hList, nItemPos);
    341406    return TRUE;
    342407}
    343408
    344 
    345 LPVOID WINAPI
    346 CreateMRUListLazyA (LPMRUINFO lpmi, DWORD dwParam2, DWORD dwParam3, DWORD dwParam4)
     409/**************************************************************************
     410 *                  FindMRUData [COMCTL32.169]
     411 *
     412 * Searches binary list for item that matches lpData of length cbData.
     413 * Returns position in list order 0 -> MRU and if lpRegNum != NULL then value
     414 * corresponding to item's reg. name will be stored in it ('a' -> 0).
     415 *
     416 * PARAMS
     417 *    hList [I] list handle
     418 *    lpData [I] data to find
     419 *    cbData [I] length of data
     420 *    lpRegNum [O] position in registry (maybe NULL)
     421 *
     422 * RETURNS
     423 *    Position in list 0 -> MRU.  -1 if item not found.
     424 */
     425INT WINAPI
     426FindMRUData (HANDLE hList, LPCVOID lpData, DWORD cbData, LPINT lpRegNum)
     427{
     428    FIXME("(%08x, %p, %ld, %p) empty stub!\n",
     429           hList, lpData, cbData, lpRegNum);
     430
     431    return 0;
     432}
     433
     434/**************************************************************************
     435 *                  FindMRUStringA [COMCTL32.155]
     436 *
     437 * Searches string list for item that matches lpszString.
     438 * Returns position in list order 0 -> MRU and if lpRegNum != NULL then value
     439 * corresponding to item's reg. name will be stored in it ('a' -> 0).
     440 *
     441 * PARAMS
     442 *    hList [I] list handle
     443 *    lpszString [I] string to find
     444 *    lpRegNum [O] position in registry (maybe NULL)
     445 *
     446 * RETURNS
     447 *    Position in list 0 -> MRU.  -1 if item not found.
     448 */
     449INT WINAPI
     450FindMRUStringA (HANDLE hList, LPCSTR lpszString, LPINT lpRegNum)
     451{
     452    FIXME("(%08x, %s, %p) empty stub!\n", hList, debugstr_a(lpszString),
     453          lpRegNum);
     454
     455    return 0;
     456}
     457
     458HANDLE WINAPI
     459CreateMRUListLazyA (LPCREATEMRULIST lpcml, DWORD dwParam2, DWORD dwParam3, DWORD dwParam4)
    347460{
    348461    /* DWORD  dwLocal1;   *
     
    358471    LPVOID ptr;
    359472
    360 //    FIXME (commctrl, "(%p) empty stub!\n", lpmi);
    361 
    362     if (lpmi) {
    363 //      FIXME (commctrl, "(%lx %lx %lx %lx \"%s\" %lx)\n",
    364 //             lpmi->dwParam1, lpmi->dwParam2, lpmi->dwParam3,
    365 //             (DWORD)lpmi->hkeyMain, lpmi->lpszSubKey, lpmi->dwParam6);
    366     }
     473    FIXME("(%p) empty stub!\n", lpcml);
     474
     475    if (lpcml == NULL)
     476        return 0;
     477
     478    if (lpcml->cbSize < sizeof(CREATEMRULIST))
     479        return 0;
     480
     481    FIXME("(%lu %lu %lx %lx \"%s\" %p)\n",
     482          lpcml->cbSize, lpcml->nMaxItems, lpcml->dwFlags,
     483          (DWORD)lpcml->hKey, lpcml->lpszSubKey, lpcml->lpfnCompare);
    367484
    368485    /* dummy pointer creation */
    369486    ptr = COMCTL32_Alloc (32);
    370487
    371 //    FIXME (commctrl, "-- ret = %p\n", ptr);
    372 
    373     return ptr;
     488    FIXME("-- ret = %p\n", ptr);
     489
     490    return (HANDLE)ptr;
     491}
     492
     493/**************************************************************************
     494 *                EnumMRUListA [COMCTL32.154]
     495 *
     496 * Enumerate item in a list
     497 *
     498 * PARAMS
     499 *    hList [I] list handle
     500 *    nItemPos [I] item position to enumerate
     501 *    lpBuffer [O] buffer to receive item
     502 *    nBufferSize [I] size of buffer
     503 *
     504 * RETURNS
     505 *    For binary lists specifies how many bytes were copied to buffer, for
     506 *    string lists specifies full length of string.  Enumerating past the end
     507 *    of list returns -1.
     508 *    If lpBuffer == NULL or nItemPos is -ve return value is no. of items in
     509 *    the list.
     510 */
     511INT WINAPI EnumMRUListA(HANDLE hList, INT nItemPos, LPVOID lpBuffer,
     512DWORD nBufferSize)
     513{
     514    FIXME("(%08x, %d, %p, %ld): stub\n", hList, nItemPos, lpBuffer,
     515          nBufferSize);
     516    return 0;
    374517}
    375518
     
    19762119BOOL WINAPI comctl32_410( HWND hw, DWORD b, DWORD c, DWORD d) {
    19772120
    1978   dprintf(("COMCTL32: comctl32_410 - unimplemented stub\n"));
    1979    //FIXME_(commctrl)("(%x, %lx, %lx, %lx): stub!\n", hw, b, c, d);
     2121   FIXME("(%x, %lx, %lx, %lx): stub!\n", hw, b, c, d);
     2122
     2123   return TRUE;
     2124}
     2125
     2126/**************************************************************************
     2127 * comctl32_411 [COMCTL32.411]
     2128 *
     2129 * FIXME: What's this supposed to do?
     2130 *        Parameter 1 is an HWND, you're on your own for the rest.
     2131 */
     2132
     2133BOOL WINAPI comctl32_411( HWND hw, DWORD b, DWORD c) {
     2134
     2135   FIXME("(%x, %lx, %lx): stub!\n", hw, b, c);
     2136
     2137   return TRUE;
     2138}
     2139
     2140/**************************************************************************
     2141 * comctl32_412 [COMCTL32.412]
     2142 *
     2143 * FIXME: What's this supposed to do?
     2144 *        Parameter 1 is an HWND, you're on your own for the rest.
     2145 */
     2146
     2147BOOL WINAPI comctl32_412( HWND hwnd, DWORD b, DWORD c)
     2148{
     2149    FIXME("(%x, %lx, %lx): stub!\n", hwnd, b, c);
     2150
     2151    if (IsWindow (hwnd) == FALSE)
     2152        return FALSE;
     2153
     2154    if (b == 0)
     2155        return FALSE;
     2156
     2157
     2158    return TRUE;
     2159}
     2160
     2161/**************************************************************************
     2162 * comctl32_413 [COMCTL32.413]
     2163 *
     2164 * FIXME: What's this supposed to do?
     2165 *        Parameter 1 is an HWND, you're on your own for the rest.
     2166 */
     2167
     2168BOOL WINAPI comctl32_413( HWND hw, DWORD b, DWORD c, DWORD d) {
     2169
     2170   FIXME("(%x, %lx, %lx, %lx): stub!\n", hw, b, c, d);
    19802171
    19812172   return TRUE;
     
    19892180 */
    19902181
    1991 BOOL WINAPI InitMUILanguage( DWORD a ) {
    1992 
    1993    //FIXME_(commctrl)("(%lx): stub!\n", a);
    1994   dprintf(("COMCTL32: InitMUILanguage - unimplemented stub\n"));
     2182BOOL WINAPI InitMUILanguage( LANGID uiLang) {
     2183
     2184   FIXME("(%04x): stub!\n", uiLang);
    19952185
    19962186   return TRUE;
    19972187}
    1998 
Note: See TracChangeset for help on using the changeset viewer.