ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

HRESULT RecycleBin5Enum_Constructor ( IN IRecycleBin5 prb,
IN HANDLE  hInfo,
IN HANDLE  hInfoMapped,
IN LPCWSTR  szPrefix,
OUT IUnknown **  ppUnknown 
)

Definition at line 446 of file recyclebin_v5_enumerator.c.

Referenced by RecycleBin5_RecycleBin5_EnumObjects().

{
    struct RecycleBin5Enum *s = NULL;
    SIZE_T Needed;

    if (!ppUnknown)
        return E_POINTER;

    Needed = (wcslen(szPrefix) + 1) * sizeof(WCHAR);

    s = CoTaskMemAlloc(sizeof(struct RecycleBin5Enum) + Needed);
    if (!s)
        return E_OUTOFMEMORY;
    ZeroMemory(s, sizeof(struct RecycleBin5Enum) + Needed);
    s->recycleBinEnumImpl.lpVtbl = &RecycleBin5EnumVtbl;
    s->ref = 1;
    s->recycleBin = prb;
    wcscpy(s->szPrefix, szPrefix);
    s->hInfo = hInfo;
    s->pInfo = MapViewOfFile(hInfoMapped, FILE_MAP_READ, 0, 0, 0);
    if (!s->pInfo)
    {
        CoTaskMemFree(s);
        return HRESULT_FROM_WIN32(GetLastError());
    }
    if (s->pInfo->dwVersion != 5 || s->pInfo->dwRecordSize != sizeof(DELETED_FILE_RECORD))
    {
        UnmapViewOfFile(s->pInfo);
        CoTaskMemFree(s);
        return E_FAIL;
    }
    IRecycleBin5_AddRef(s->recycleBin);
    *ppUnknown = (IUnknown *)&s->recycleBinEnumImpl;

    return S_OK;
}

Generated on Mon May 28 2012 06:04:58 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.