ReactOS 0.4.16-dev-1946-g52006dd
shlfolder.c File Reference
#include <stdarg.h>
#include <stdio.h>
#include "windef.h"
#include "winbase.h"
#include "wtypes.h"
#include "shellapi.h"
#include "shlguid.h"
#include "shlobj.h"
#include "shobjidl.h"
#include "shlwapi.h"
#include "ocidl.h"
#include "oleauto.h"
#include "wine/heap.h"
#include "wine/test.h"
#include <initguid.h>
#include "pshpack1.h"
#include "poppack.h"
Include dependency graph for shlfolder.c:

Go to the source code of this file.

Classes

struct  FileStructA
 
struct  FileStructW
 
struct  IUnknownImpl
 
struct  IUnknownImpl::if_count
 
struct  ChNotifyTest
 

Macros

#define COBJMACROS
 
#define CONST_VTABLE
 
#define MAKEFUNC(f)   (p##f = (void*)GetProcAddress(hmod, #f))
 
#define TESTNAMED(f)
 
#define SFGAO_testfor   SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR | SFGAO_CAPABILITYMASK
 
#define SFGAO_VISTA   SFGAO_DROPTARGET | SFGAO_CANLINK | SFGAO_CANCOPY
 
#define verify_pidl(i, p)   r_verify_pidl(__LINE__, i, p)
 
#define WM_USER_NOTIFY   (WM_APP+1)
 

Functions

 DEFINE_GUID (IID_IParentAndItem, 0xB3A4B685, 0xB685, 0x4805, 0x99, 0xD9, 0x5D, 0xEA, 0xD2, 0x87, 0x32, 0x36)
 
 DEFINE_GUID (CLSID_ShellDocObjView, 0xe7e4bc40, 0xe76a, 0x11ce, 0xa9, 0xbb, 0x00, 0xaa, 0x00, 0x4a, 0xe8, 0x37)
 
static HRESULT (WINAPI *pSHCreateItemFromIDList)(PCIDLIST_ABSOLUTE pidl
 
static IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static PWSTR *static PWSTR *static void **static PIDLIST_ABSOLUTE *static void **static BOOL (WINAPI *pIsWow64Process)(HANDLE
 
static WCHARmake_wstr (const char *str)
 
static int strcmp_wa (LPCWSTR strw, const char *stra)
 
static void init_function_pointers (void)
 
static LPWSTR myPathAddBackslashW (LPWSTR lpszPath)
 
static void test_ParseDisplayName (void)
 
static void CreateTestFile (const CHAR *name)
 
static void CreateFilesFolders (void)
 
static void Cleanup (void)
 
static void test_EnumObjects (IShellFolder *iFolder)
 
static void test_BindToObject (void)
 
static void test_GetDisplayName (void)
 
static void test_CallForAttributes (void)
 
static void test_GetAttributesOf (void)
 
static void test_SHGetPathFromIDList (void)
 
static void test_EnumObjects_and_CompareIDs (void)
 
static HRESULT WINAPI InitPropertyBag_IPropertyBag_QueryInterface (IPropertyBag *iface, REFIID riid, void **ppvObject)
 
static ULONG WINAPI InitPropertyBag_IPropertyBag_AddRef (IPropertyBag *iface)
 
static ULONG WINAPI InitPropertyBag_IPropertyBag_Release (IPropertyBag *iface)
 
static HRESULT WINAPI InitPropertyBag_IPropertyBag_Read (IPropertyBag *iface, LPCOLESTR pszPropName, VARIANT *pVar, IErrorLog *pErrorLog)
 
static HRESULT WINAPI InitPropertyBag_IPropertyBag_Write (IPropertyBag *iface, LPCOLESTR pszPropName, VARIANT *pVar)
 
static void test_FolderShortcut (void)
 
static void test_ITEMIDLIST_format (void)
 
static void test_SHGetFolderPathA (void)
 
static void test_SHGetFolderPathAndSubDirA (void)
 
static void test_LocalizedNames (void)
 
static void test_SHCreateShellItem (void)
 
static void test_SHGetNameFromIDList (void)
 
static void test_SHGetItemFromDataObject (void)
 
static void test_ShellItemCompare (void)
 
static IUnknownImplimpl_from_IUnknown (IUnknown *iface)
 
static HRESULT WINAPI unk_fnQueryInterface (IUnknown *iunk, REFIID riid, void **punk)
 
static ULONG WINAPI unk_fnAddRef (IUnknown *iunk)
 
static ULONG WINAPI unk_fnRelease (IUnknown *iunk)
 
static void test_SHGetIDListFromObject (void)
 
static void test_SHGetItemFromObject (void)
 
static void test_SHCreateShellItemArray (void)
 
static void test_ShellItemArrayEnumItems (void)
 
static void test_ShellItemBindToHandler (void)
 
static void test_ShellItemGetAttributes (void)
 
static void test_ShellItemArrayGetAttributes (void)
 
static WCHARget_empty_cddrive (void)
 
static void test_SHParseDisplayName (void)
 
static void test_desktop_IPersist (void)
 
static void test_contextmenu_qi (IContextMenu *menu, BOOL todo)
 
static void test_contextmenu (IContextMenu *menu, BOOL background)
 
static void test_GetUIObject (void)
 
static void r_verify_pidl (unsigned l, LPCITEMIDLIST pidl, const WCHAR *path)
 
static void test_SHSimpleIDListFromPath (void)
 
static HRESULT WINAPI fsbd_QueryInterface (IFileSystemBindData *fsbd, REFIID riid, void **ppv)
 
static ULONG WINAPI fsbd_AddRef (IFileSystemBindData *fsbd)
 
static ULONG WINAPI fsbd_Release (IFileSystemBindData *fsbd)
 
static HRESULT WINAPI fsbd_SetFindData (IFileSystemBindData *fsbd, const WIN32_FIND_DATAW *pfd)
 
static HRESULT WINAPI fsbd_GetFindData_nul (IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
 
static HRESULT WINAPI fsbd_GetFindData_junk (IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
 
static HRESULT WINAPI fsbd_GetFindData_invalid (IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
 
static HRESULT WINAPI fsbd_GetFindData_valid (IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
 
static HRESULT WINAPI fsbd_GetFindData_fail (IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
 
static void test_ParseDisplayNamePBC (void)
 
static LRESULT CALLBACK testwindow_wndproc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
 
static void register_testwindow_class (void)
 
static void do_events (void)
 
static void test_SHChangeNotify (BOOL test_new_delivery)
 
static void test_SHCreateDefaultContextMenu (void)
 
static void test_DataObject (void)
 
static void test_GetDefaultColumn (void)
 
static void test_GetDefaultSearchGUID (void)
 
static void test_SHLimitInputEdit (void)
 
static void test_SHGetSetFolderCustomSettings (void)
 
 START_TEST (shlfolder)
 

Variables

static IMallocppM
 
static REFIID riid
 
static REFIID void ** ppv
 
static IBindCtx REFIID
 
static IBindCtx void **static PCWSTR
 
static IBindCtx void **static IBindCtx void **static DWORD
 
static IBindCtx void **static IBindCtx void **static void **static IShellFolder LPCITEMIDLIST
 
static IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder UINT
 
static IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static HANDLE
 
static IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static PWSTR *static SIGDN
 
static IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static PWSTR *static PWSTR *static DATAOBJ_GET_ITEM_FLAGS
 
static IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static PWSTR *static PWSTR *static void **static PIDLIST_ABSOLUTE *static void **static PBOOL
 
static void **static WCHAR GPFIDL_FLAGS
 
struct {
   WCHAR   path [MAX_PATH]
 
   HRESULT   hr
 
   int   todo
 
parse_tests []
 
static const IPropertyBagVtbl InitPropertyBag_IPropertyBagVtbl
 
static struct IPropertyBag InitPropertyBag
 
static const IUnknownVtbl vt_IUnknown
 
static IFileSystemBindDataVtbl fsbdVtbl
 
static IFileSystemBindData fsbd = { &fsbdVtbl }
 
static const CHAR testwindow_class [] = "testwindow"
 
struct ChNotifyTest chnotify_tests []
 
struct ChNotifyTestexp_data
 
BOOL test_new_delivery_flag
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 24 of file shlfolder.c.

◆ CONST_VTABLE

#define CONST_VTABLE

Definition at line 25 of file shlfolder.c.

◆ MAKEFUNC

#define MAKEFUNC (   f)    (p##f = (void*)GetProcAddress(hmod, #f))

◆ SFGAO_testfor

#define SFGAO_testfor   SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR | SFGAO_CAPABILITYMASK

◆ SFGAO_VISTA

#define SFGAO_VISTA   SFGAO_DROPTARGET | SFGAO_CANLINK | SFGAO_CANCOPY

◆ TESTNAMED

#define TESTNAMED (   f)
Value:
ptr = (void*)GetProcAddress(hmod, #f); \
ok(ptr != 0, "expected named export for " #f "\n");
#define GetProcAddress(x, y)
Definition: compat.h:753
GLfloat f
Definition: glext.h:7540
static PVOID ptr
Definition: dispmode.c:27
static PEXPLICIT_ACCESSW *static HMODULE hmod
Definition: security.c:143

◆ verify_pidl

#define verify_pidl (   i,
  p 
)    r_verify_pidl(__LINE__, i, p)

Definition at line 4528 of file shlfolder.c.

◆ WM_USER_NOTIFY

#define WM_USER_NOTIFY   (WM_APP+1)

Definition at line 4855 of file shlfolder.c.

Function Documentation

◆ BOOL()

static IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static PWSTR *static PWSTR *static void **static PIDLIST_ABSOLUTE *static void **static BOOL ( WINAPI pIsWow64Process)
static

◆ Cleanup()

static void Cleanup ( void  )
static

Definition at line 308 of file shlfolder.c.

309{
310 DeleteFileA(".\\testdir\\test1.txt");
311 DeleteFileA(".\\testdir\\test2.txt");
312 DeleteFileA(".\\testdir\\test3.txt");
313 RemoveDirectoryA(".\\testdir\\test.txt");
314 RemoveDirectoryA(".\\testdir\\testdir2\\subdir");
315 RemoveDirectoryA(".\\testdir\\testdir2");
316 RemoveDirectoryA(".\\testdir");
317}
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
Definition: delete.c:24
BOOL WINAPI RemoveDirectoryA(IN LPCSTR lpPathName)
Definition: dir.c:714

Referenced by test_EnumObjects_and_CompareIDs(), test_GetAttributesOf(), test_GetUIObject(), test_SHCreateDefaultContextMenu(), test_SHCreateShellItemArray(), test_ShellItemArrayGetAttributes(), and test_ShellItemGetAttributes().

◆ CreateFilesFolders()

static void CreateFilesFolders ( void  )
static

Definition at line 296 of file shlfolder.c.

297{
298 CreateDirectoryA(".\\testdir", NULL);
299 CreateDirectoryA(".\\testdir\\test.txt", NULL);
300 CreateTestFile (".\\testdir\\test1.txt ");
301 CreateTestFile (".\\testdir\\test2.txt ");
302 CreateTestFile (".\\testdir\\test3.txt ");
303 CreateDirectoryA(".\\testdir\\testdir2 ", NULL);
304 CreateDirectoryA(".\\testdir\\testdir2\\subdir", NULL);
305}
#define NULL
Definition: types.h:112
BOOL WINAPI CreateDirectoryA(IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
Definition: dir.c:37
static void CreateTestFile(const CHAR *name)
Definition: shlfolder.c:280

Referenced by test_EnumObjects_and_CompareIDs(), test_GetAttributesOf(), test_GetUIObject(), test_SHCreateDefaultContextMenu(), test_SHCreateShellItemArray(), test_ShellItemArrayEnumItems(), test_ShellItemArrayGetAttributes(), and test_ShellItemGetAttributes().

◆ CreateTestFile()

static void CreateTestFile ( const CHAR name)
static

Definition at line 280 of file shlfolder.c.

281{
282 HANDLE file;
283 DWORD written;
284
287 {
288 WriteFile(file, name, strlen(name), &written, NULL);
289 WriteFile(file, "\n", strlen("\n"), &written, NULL);
291 }
292}
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define CloseHandle
Definition: compat.h:739
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define CreateFileA(a, b, c, d, e, f, g)
Definition: compat.h:740
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Definition: rw.c:24
unsigned long DWORD
Definition: ntddk_ex.h:95
#define CREATE_ALWAYS
Definition: disk.h:72
#define GENERIC_WRITE
Definition: nt_native.h:90
Definition: fci.c:127
Definition: name.c:39

Referenced by CreateFilesFolders(), test_SHCreateShellItem(), and test_ShellItemCompare().

◆ DEFINE_GUID() [1/2]

DEFINE_GUID ( CLSID_ShellDocObjView  ,
0xe7e4bc40  ,
0xe76a  ,
0x11ce  ,
0xa9  ,
0xbb  ,
0x00  ,
0xaa  ,
0x00  ,
0x4a  ,
0xe8  ,
0x37   
)

◆ DEFINE_GUID() [2/2]

DEFINE_GUID ( IID_IParentAndItem  ,
0xB3A4B685  ,
0xB685  ,
0x4805  ,
0x99  ,
0xD9  ,
0x5D  ,
0xEA  ,
0xD2  ,
0x87  ,
0x32  ,
0x36   
)

◆ do_events()

static void do_events ( void  )
static

Definition at line 4931 of file shlfolder.c.

4932{
4933 int c = 0;
4934 while (exp_data->missing_events && (c++ < 10)){
4935 MSG msg;
4936 while(PeekMessageA(&msg, NULL, 0, 0, PM_REMOVE)){
4939 }
4940 if(exp_data->missing_events)
4941 Sleep(500);
4942 }
4943 trace("%s: took %d tries\n", exp_data->id, c);
4944}
#define trace
Definition: atltest.h:70
#define msg(x)
Definition: auth_time.c:54
const GLubyte * c
Definition: glext.h:8905
struct ChNotifyTest * exp_data
Definition: shlfolder.c:4870
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
Definition: synch.c:790
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
#define PM_REMOVE
Definition: winuser.h:1207
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)

Referenced by test_SHChangeNotify().

◆ fsbd_AddRef()

static ULONG WINAPI fsbd_AddRef ( IFileSystemBindData fsbd)
static

Definition at line 4613 of file shlfolder.c.

4614{
4615 return 2;
4616}

◆ fsbd_GetFindData_fail()

static HRESULT WINAPI fsbd_GetFindData_fail ( IFileSystemBindData fsbd,
WIN32_FIND_DATAW pfd 
)
static

Definition at line 4662 of file shlfolder.c.

4664{
4665 return E_FAIL;
4666}
#define E_FAIL
Definition: ddrawi.h:102

Referenced by test_ParseDisplayNamePBC().

◆ fsbd_GetFindData_invalid()

static HRESULT WINAPI fsbd_GetFindData_invalid ( IFileSystemBindData fsbd,
WIN32_FIND_DATAW pfd 
)
static

Definition at line 4644 of file shlfolder.c.

4646{
4647 memset(pfd, 0, sizeof(WIN32_FIND_DATAW));
4648 *pfd->cFileName = 'a';
4649 *pfd->cAlternateFileName = 'a';
4650 return S_OK;
4651}
#define S_OK
Definition: intsafe.h:52
#define memset(x, y, z)
Definition: compat.h:39
static PIXELFORMATDESCRIPTOR pfd
Definition: ssstars.c:67

Referenced by test_ParseDisplayNamePBC().

◆ fsbd_GetFindData_junk()

static HRESULT WINAPI fsbd_GetFindData_junk ( IFileSystemBindData fsbd,
WIN32_FIND_DATAW pfd 
)
static

Definition at line 4637 of file shlfolder.c.

4639{
4640 memset(pfd, 0xef, sizeof(WIN32_FIND_DATAW));
4641 return S_OK;
4642}

Referenced by test_ParseDisplayNamePBC().

◆ fsbd_GetFindData_nul()

static HRESULT WINAPI fsbd_GetFindData_nul ( IFileSystemBindData fsbd,
WIN32_FIND_DATAW pfd 
)
static

Definition at line 4630 of file shlfolder.c.

4632{
4633 memset(pfd, 0, sizeof(WIN32_FIND_DATAW));
4634 return S_OK;
4635}

Referenced by test_ParseDisplayNamePBC().

◆ fsbd_GetFindData_valid()

static HRESULT WINAPI fsbd_GetFindData_valid ( IFileSystemBindData fsbd,
WIN32_FIND_DATAW pfd 
)
static

Definition at line 4653 of file shlfolder.c.

4655{
4656 static const WCHAR adirW[] = {'C',':','\\','f','s','b','d','d','i','r',0};
4657 HANDLE handle = FindFirstFileW(adirW, pfd);
4659 return S_OK;
4660}
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
Definition: find.c:320
BOOL WINAPI FindClose(HANDLE hFindFile)
Definition: find.c:502
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by test_ParseDisplayNamePBC().

◆ fsbd_QueryInterface()

static HRESULT WINAPI fsbd_QueryInterface ( IFileSystemBindData fsbd,
REFIID  riid,
void **  ppv 
)
static

Definition at line 4602 of file shlfolder.c.

4604{
4605 if(IsEqualIID(riid, &IID_IFileSystemBindData) ||
4607 *ppv = fsbd;
4608 return S_OK;
4609 }
4610 return E_NOINTERFACE;
4611}
const GUID IID_IUnknown
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
static IFileSystemBindData fsbd
Definition: shlfolder.c:4676
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ fsbd_Release()

static ULONG WINAPI fsbd_Release ( IFileSystemBindData fsbd)
static

Definition at line 4618 of file shlfolder.c.

4619{
4620 return 1;
4621}

◆ fsbd_SetFindData()

static HRESULT WINAPI fsbd_SetFindData ( IFileSystemBindData fsbd,
const WIN32_FIND_DATAW pfd 
)
static

Definition at line 4623 of file shlfolder.c.

4625{
4626 ok(0, "SetFindData called\n");
4627 return E_NOTIMPL;
4628}
#define ok(value,...)
Definition: atltest.h:57
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ get_empty_cddrive()

static WCHAR * get_empty_cddrive ( void  )
static

Definition at line 4222 of file shlfolder.c.

4223{
4224 static WCHAR cdrom_drive[] = {'A',':','\\',0};
4225 DWORD drives = GetLogicalDrives();
4226
4227 cdrom_drive[0] = 'A';
4228 while (drives)
4229 {
4230 if ((drives & 1) &&
4231 GetDriveTypeW(cdrom_drive) == DRIVE_CDROM &&
4233 {
4234 return cdrom_drive;
4235 }
4236
4237 drives = drives >> 1;
4238 cdrom_drive[0]++;
4239 }
4240 return NULL;
4241}
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
Definition: disk.c:497
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
Definition: fileinfo.c:652
DWORD WINAPI DECLSPEC_HOTPATCH GetLogicalDrives(void)
Definition: volume.c:513
#define DRIVE_CDROM
Definition: machpc98.h:119
#define INVALID_FILE_ATTRIBUTES
Definition: vfdcmd.c:23

Referenced by test_SHParseDisplayName().

◆ HRESULT()

static HRESULT ( WINAPI pSHCreateItemFromIDList)
static

◆ impl_from_IUnknown()

static IUnknownImpl * impl_from_IUnknown ( IUnknown iface)
inlinestatic

Definition at line 2983 of file shlfolder.c.

2984{
2985 return CONTAINING_RECORD(iface, IUnknownImpl, IUnknown_iface);
2986}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by unk_fnQueryInterface().

◆ init_function_pointers()

static void init_function_pointers ( void  )
static

Definition at line 98 of file shlfolder.c.

99{
101 HRESULT hr;
102 void *ptr;
103
104 hmod = GetModuleHandleA("shell32.dll");
105
106#define MAKEFUNC(f) (p##f = (void*)GetProcAddress(hmod, #f))
109 MAKEFUNC(SHCreateItemFromRelativeName);
110 MAKEFUNC(SHCreateItemInKnownFolder);
116 MAKEFUNC(SHGetKnownFolderPath);
122 MAKEFUNC(SHGetPathFromIDListEx);
123 MAKEFUNC(SHGetSetFolderCustomSettings);
124#undef MAKEFUNC
125
126 /* test named exports */
127 ptr = GetProcAddress(hmod, "ILFree");
128 ok(broken(ptr == 0) || ptr != 0, "expected named export for ILFree\n");
129 if (ptr)
130 {
131#define TESTNAMED(f) \
132 ptr = (void*)GetProcAddress(hmod, #f); \
133 ok(ptr != 0, "expected named export for " #f "\n");
134
150#undef TESTNAMED
151 }
152
153 hmod = GetModuleHandleA("kernel32.dll");
154 pIsWow64Process = (void*)GetProcAddress(hmod, "IsWow64Process");
155
156 hr = SHGetMalloc(&ppM);
157 ok(hr == S_OK, "SHGetMalloc failed %08x\n", hr);
158}
HRESULT WINAPI SHCreateDefaultContextMenu(const DEFCONTEXTMENU *pdcm, REFIID riid, void **ppv)
EXTERN_C HRESULT WINAPI SHCreateShellItemArrayFromDataObject(_In_ IDataObject *pdo, _In_ REFIID riid, _Out_ void **ppv)
Definition: CShellItem.cpp:429
EXTERN_C HRESULT WINAPI SHCreateShellItem(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, IShellItem **ppsi)
Definition: CShellItem.cpp:264
#define broken(x)
Definition: atltest.h:178
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
Definition: loader.c:812
HRESULT WINAPI SHGetMalloc(LPMALLOC *lpmal)
Definition: shellole.c:329
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:238
LPITEMIDLIST WINAPI ILFindLastID(LPCITEMIDLIST pidl)
Definition: pidl.c:199
HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl)
Definition: pidl.c:1674
BOOL WINAPI ILIsParent(LPCITEMIDLIST pidlParent, LPCITEMIDLIST pidlChild, BOOL bImmediate)
Definition: pidl.c:698
HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName)
Definition: pidl.c:1604
LPITEMIDLIST WINAPI ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:817
LPITEMIDLIST WINAPI ILCloneFirst(LPCITEMIDLIST pidl)
Definition: pidl.c:263
BOOL WINAPI ILRemoveLastID(LPITEMIDLIST pidl)
Definition: pidl.c:222
HRESULT WINAPI ILSaveToStream(IStream *pStream, LPCITEMIDLIST pPidl)
Definition: pidl.c:354
LPITEMIDLIST WINAPI ILAppendID(LPITEMIDLIST pidl, LPCSHITEMID item, BOOL bEnd)
Definition: pidl.c:1005
HRESULT WINAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv)
Definition: pidl.c:1665
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
Definition: pidl.c:971
PUIDLIST_RELATIVE WINAPI ILFindChild(PIDLIST_ABSOLUTE pidl1, PCIDLIST_ABSOLUTE pidl2)
Definition: pidl.c:751
LPITEMIDLIST WINAPI ILCreateFromPathW(LPCWSTR path)
Definition: pidl.c:1102
LPITEMIDLIST WINAPI ILCreateFromPathA(LPCSTR path)
Definition: pidl.c:1086
BOOL WINAPI ILIsEqual(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
Definition: pidl.c:583
#define ILGetSize
Definition: shellclasses.h:638
#define MAKEFUNC(f)
static IMalloc * ppM
Definition: shlfolder.c:47
#define TESTNAMED(f)
HRESULT hr
Definition: shlfolder.c:183
#define ILCreateFromPath
Definition: shlobj.h:2512
HRESULT WINAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv)
HRESULT WINAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv)
HRESULT WINAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY pidl_array, IShellItemArray **psia)
HRESULT WINAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray)
HRESULT WINAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv)
HRESULT WINAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv)

Referenced by START_TEST().

◆ InitPropertyBag_IPropertyBag_AddRef()

static ULONG WINAPI InitPropertyBag_IPropertyBag_AddRef ( IPropertyBag iface)
static

Definition at line 1278 of file shlfolder.c.

1278 {
1279 return 2;
1280}

◆ InitPropertyBag_IPropertyBag_QueryInterface()

static HRESULT WINAPI InitPropertyBag_IPropertyBag_QueryInterface ( IPropertyBag iface,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 1261 of file shlfolder.c.

1263{
1264 if (!ppvObject)
1265 return E_INVALIDARG;
1266
1268 *ppvObject = iface;
1269 } else {
1270 ok (FALSE, "InitPropertyBag asked for unknown interface!\n");
1271 return E_NOINTERFACE;
1272 }
1273
1274 IPropertyBag_AddRef(iface);
1275 return S_OK;
1276}
#define E_INVALIDARG
Definition: ddrawi.h:101
#define FALSE
Definition: types.h:117
const GUID IID_IPropertyBag

◆ InitPropertyBag_IPropertyBag_Read()

static HRESULT WINAPI InitPropertyBag_IPropertyBag_Read ( IPropertyBag iface,
LPCOLESTR  pszPropName,
VARIANT pVar,
IErrorLog pErrorLog 
)
static

Definition at line 1286 of file shlfolder.c.

1288{
1289 static const WCHAR wszTargetSpecialFolder[] = {
1290 'T','a','r','g','e','t','S','p','e','c','i','a','l','F','o','l','d','e','r',0 };
1291 static const WCHAR wszTarget[] = {
1292 'T','a','r','g','e','t',0 };
1293 static const WCHAR wszAttributes[] = {
1294 'A','t','t','r','i','b','u','t','e','s',0 };
1295 static const WCHAR wszResolveLinkFlags[] = {
1296 'R','e','s','o','l','v','e','L','i','n','k','F','l','a','g','s',0 };
1297 static const WCHAR wszTargetKnownFolder[] = {
1298 'T','a','r','g','e','t','K','n','o','w','n','F','o','l','d','e','r',0 };
1299 static const WCHAR wszCLSID[] = {
1300 'C','L','S','I','D',0 };
1301
1302 if (!lstrcmpW(pszPropName, wszTargetSpecialFolder)) {
1303 ok(V_VT(pVar) == VT_I4, "Wrong variant type for 'TargetSpecialFolder' property!\n");
1304 return E_INVALIDARG;
1305 }
1306
1307 if (!lstrcmpW(pszPropName, wszResolveLinkFlags))
1308 {
1309 ok(V_VT(pVar) == VT_UI4, "Wrong variant type for 'ResolveLinkFlags' property!\n");
1310 return E_INVALIDARG;
1311 }
1312
1313 if (!lstrcmpW(pszPropName, wszTarget)) {
1314 WCHAR wszPath[MAX_PATH];
1315 BOOL result;
1316
1317 ok(V_VT(pVar) == VT_BSTR, "Wrong variant type for 'Target' property!\n");
1318 if (V_VT(pVar) != VT_BSTR) return E_INVALIDARG;
1319
1321 ok(result, "SHGetSpecialFolderPathW(DESKTOPDIRECTORY) failed! %u\n", GetLastError());
1322 if (!result) return E_INVALIDARG;
1323
1324 V_BSTR(pVar) = SysAllocString(wszPath);
1325 return S_OK;
1326 }
1327
1328 if (!lstrcmpW(pszPropName, wszAttributes)) {
1329 ok(V_VT(pVar) == VT_UI4, "Wrong variant type for 'Attributes' property!\n");
1330 if (V_VT(pVar) != VT_UI4) return E_INVALIDARG;
1331 V_UI4(pVar) = SFGAO_FOLDER|SFGAO_HASSUBFOLDER|SFGAO_FILESYSANCESTOR|
1332 SFGAO_CANRENAME|SFGAO_FILESYSTEM;
1333 return S_OK;
1334 }
1335
1336 if (!lstrcmpW(pszPropName, wszTargetKnownFolder)) {
1337 ok(V_VT(pVar) == VT_BSTR, "Wrong variant type for 'TargetKnownFolder' property!\n");
1338 /* TODO */
1339 return E_INVALIDARG;
1340 }
1341
1342 if (!lstrcmpW(pszPropName, wszCLSID)) {
1343 ok(V_VT(pVar) == VT_EMPTY, "Wrong variant type for 'CLSID' property!\n");
1344 /* TODO */
1345 return E_INVALIDARG;
1346 }
1347
1348 ok(FALSE, "PropertyBag was asked for unknown property %s (vt=%d)!\n", wine_dbgstr_w(pszPropName), V_VT(pVar));
1349 return E_INVALIDARG;
1350}
#define MAX_PATH
Definition: compat.h:34
@ VT_BSTR
Definition: compat.h:2303
@ VT_I4
Definition: compat.h:2298
@ VT_UI4
Definition: compat.h:2313
@ VT_EMPTY
Definition: compat.h:2295
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4246
BOOL WINAPI SHGetSpecialFolderPathW(HWND hwndOwner, LPWSTR szPath, int nFolder, BOOL bCreate)
Definition: shellpath.c:3219
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint64EXT * result
Definition: glext.h:11304
#define wine_dbgstr_w
Definition: kernel32.h:34
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
#define V_UI4(A)
Definition: oleauto.h:270
#define CSIDL_DESKTOPDIRECTORY
Definition: shlobj.h:2194
DWORD WINAPI GetLastError(void)
Definition: except.c:1042

◆ InitPropertyBag_IPropertyBag_Release()

static ULONG WINAPI InitPropertyBag_IPropertyBag_Release ( IPropertyBag iface)
static

Definition at line 1282 of file shlfolder.c.

1282 {
1283 return 1;
1284}

◆ InitPropertyBag_IPropertyBag_Write()

static HRESULT WINAPI InitPropertyBag_IPropertyBag_Write ( IPropertyBag iface,
LPCOLESTR  pszPropName,
VARIANT pVar 
)
static

Definition at line 1352 of file shlfolder.c.

1354{
1355 ok(FALSE, "Unexpected call to IPropertyBag_Write\n");
1356 return E_NOTIMPL;
1357}

◆ make_wstr()

static WCHAR * make_wstr ( const char str)
static

Definition at line 71 of file shlfolder.c.

72{
73 WCHAR *ret;
74 int len;
75
76 if (!str || !str[0])
77 return NULL;
78
79 len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
80 if(!len || len < 0)
81 return NULL;
82
83 ret = heap_alloc(len * sizeof(WCHAR));
84 if(!ret)
85 return NULL;
86
88 return ret;
89}
static void * heap_alloc(size_t len)
Definition: appwiz.h:66
#define CP_ACP
Definition: compat.h:109
#define MultiByteToWideChar
Definition: compat.h:110
return ret
Definition: mutex.c:146
GLenum GLsizei len
Definition: glext.h:6722
const WCHAR * str

Referenced by test_SHChangeNotify(), and testwindow_wndproc().

◆ myPathAddBackslashW()

static LPWSTR myPathAddBackslashW ( LPWSTR  lpszPath)
static

Definition at line 161 of file shlfolder.c.

162{
163 size_t iLen;
164
165 if (!lpszPath || (iLen = lstrlenW(lpszPath)) >= MAX_PATH)
166 return NULL;
167
168 if (iLen)
169 {
170 lpszPath += iLen;
171 if (lpszPath[-1] != '\\')
172 {
173 *lpszPath++ = '\\';
174 *lpszPath = '\0';
175 }
176 }
177 return lpszPath;
178}
#define lstrlenW
Definition: compat.h:750

Referenced by test_FolderShortcut(), test_SHCreateShellItem(), test_SHCreateShellItemArray(), test_ShellItemArrayEnumItems(), test_ShellItemArrayGetAttributes(), test_ShellItemGetAttributes(), and test_SHGetPathFromIDList().

◆ r_verify_pidl()

static void r_verify_pidl ( unsigned  l,
LPCITEMIDLIST  pidl,
const WCHAR path 
)
static

Definition at line 4529 of file shlfolder.c.

4530{
4534 HRESULT hr;
4535
4536 if(path){
4537 if(!pidl){
4538 ok_(__FILE__,l)(0, "didn't get expected path (%s), instead: NULL\n", wine_dbgstr_w(path));
4539 return;
4540 }
4541
4542 hr = SHBindToParent(pidl, &IID_IShellFolder, (void **)&parent, &child);
4543 ok_(__FILE__,l)(hr == S_OK, "SHBindToParent failed: 0x%08x\n", hr);
4544 if(FAILED(hr))
4545 return;
4546
4547 hr = IShellFolder_GetDisplayNameOf(parent, child, SHGDN_FORPARSING, &filename);
4548 ok_(__FILE__,l)(hr == S_OK, "GetDisplayNameOf failed: 0x%08x\n", hr);
4549 if(FAILED(hr)){
4550 IShellFolder_Release(parent);
4551 return;
4552 }
4553
4554 ok_(__FILE__,l)(filename.uType == STRRET_WSTR || filename.uType == STRRET_CSTR,
4555 "Got unexpected string type: %d\n", filename.uType);
4556 if(filename.uType == STRRET_WSTR){
4557 ok_(__FILE__,l)(lstrcmpW(path, U(filename).pOleStr) == 0,
4558 "didn't get expected path (%s), instead: %s\n",
4560 SHFree(U(filename).pOleStr);
4561 }else if(filename.uType == STRRET_CSTR){
4562 ok_(__FILE__,l)(strcmp_wa(path, U(filename).cStr) == 0,
4563 "didn't get expected path (%s), instead: %s\n",
4564 wine_dbgstr_w(path), U(filename).cStr);
4565 }
4566
4567 IShellFolder_Release(parent);
4568 }else
4569 ok_(__FILE__,l)(pidl == NULL, "Expected PIDL to be NULL\n");
4570}
#define ok_(x1, x2)
Definition: atltest.h:61
#define U(x)
Definition: wordpad.c:45
r l[0]
Definition: byte_order.h:168
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:370
#define IShellFolder_GetDisplayNameOf
Definition: utils.cpp:13
r parent
Definition: btrfs.c:3010
#define FAILED(hr)
Definition: intsafe.h:51
const char * filename
Definition: ioapi.h:137
static HWND child
Definition: cursoricon.c:298
HRESULT WINAPI SHBindToParent(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv, LPCITEMIDLIST *ppidlLast)
Definition: pidl.c:1498
static int strcmp_wa(LPCWSTR strw, const char *stra)
Definition: shlfolder.c:91
@ STRRET_CSTR
Definition: shtypes.idl:87
@ STRRET_WSTR
Definition: shtypes.idl:85
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42

◆ register_testwindow_class()

static void register_testwindow_class ( void  )
static

Definition at line 4912 of file shlfolder.c.

4913{
4914 WNDCLASSEXA cls;
4915 ATOM ret;
4916
4917 ZeroMemory(&cls, sizeof(cls));
4918 cls.cbSize = sizeof(cls);
4919 cls.style = 0;
4923
4924 SetLastError(0);
4925 ret = RegisterClassExA(&cls);
4926 ok(ret != 0, "RegisterClassExA failed: %d\n", GetLastError());
4927}
WORD ATOM
Definition: dimm.idl:113
#define SetLastError(x)
Definition: compat.h:752
#define ZeroMemory
Definition: minwinbase.h:31
static LRESULT CALLBACK testwindow_wndproc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
Definition: shlfolder.c:4873
static const CHAR testwindow_class[]
Definition: shlfolder.c:4854
HINSTANCE hInstance
Definition: winuser.h:3308
UINT style
Definition: winuser.h:3304
UINT cbSize
Definition: winuser.h:3303
WNDPROC lpfnWndProc
Definition: winuser.h:3305
LPCSTR lpszClassName
Definition: winuser.h:3313
ATOM WINAPI RegisterClassExA(_In_ CONST WNDCLASSEXA *)

Referenced by test_SHChangeNotify().

◆ START_TEST()

START_TEST ( shlfolder  )

Definition at line 5342 of file shlfolder.c.

5343{
5345 /* if OleInitialize doesn't get called, ParseDisplayName returns
5346 CO_E_NOTINITIALIZED for malformed directory names */
5348
5353#ifndef __REACTOS__
5355#endif
5387
5389}
#define TRUE
Definition: types.h:120
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
Definition: ole2.c:169
void WINAPI DECLSPEC_HOTPATCH OleUninitialize(void)
Definition: ole2.c:230
static void test_GetUIObject(void)
Definition: shlfolder.c:4480
static void test_SHLimitInputEdit(void)
Definition: shlfolder.c:5262
static void test_ShellItemArrayEnumItems(void)
Definition: shlfolder.c:3713
static void test_SHGetFolderPathA(void)
Definition: shlfolder.c:1714
static void test_SHCreateShellItemArray(void)
Definition: shlfolder.c:3266
static void test_ShellItemCompare(void)
Definition: shlfolder.c:2746
static void test_ParseDisplayName(void)
Definition: shlfolder.c:207
static void test_SHCreateShellItem(void)
Definition: shlfolder.c:2000
static void test_SHGetItemFromObject(void)
Definition: shlfolder.c:3191
static void test_LocalizedNames(void)
Definition: shlfolder.c:1898
static void init_function_pointers(void)
Definition: shlfolder.c:98
static void test_desktop_IPersist(void)
Definition: shlfolder.c:4327
static void test_GetDefaultColumn(void)
Definition: shlfolder.c:5161
static void test_SHGetItemFromDataObject(void)
Definition: shlfolder.c:2633
static void test_SHParseDisplayName(void)
Definition: shlfolder.c:4243
static void test_ShellItemArrayGetAttributes(void)
Definition: shlfolder.c:4125
static void test_ITEMIDLIST_format(void)
Definition: shlfolder.c:1564
static void test_SHCreateDefaultContextMenu(void)
Definition: shlfolder.c:5020
static void test_SHGetPathFromIDList(void)
Definition: shlfolder.c:1067
static void test_GetAttributesOf(void)
Definition: shlfolder.c:930
static void test_EnumObjects_and_CompareIDs(void)
Definition: shlfolder.c:1213
static void test_SHGetFolderPathAndSubDirA(void)
Definition: shlfolder.c:1796
static void test_SHChangeNotify(BOOL test_new_delivery)
Definition: shlfolder.c:4946
static void test_FolderShortcut(void)
Definition: shlfolder.c:1371
static void test_ParseDisplayNamePBC(void)
Definition: shlfolder.c:4678
static void test_SHGetIDListFromObject(void)
Definition: shlfolder.c:3023
static void test_BindToObject(void)
Definition: shlfolder.c:416
static void test_GetDisplayName(void)
Definition: shlfolder.c:640
static void test_ShellItemBindToHandler(void)
Definition: shlfolder.c:3869
static void test_SHSimpleIDListFromPath(void)
Definition: shlfolder.c:4572
static void test_SHGetNameFromIDList(void)
Definition: shlfolder.c:2488
static void test_ShellItemGetAttributes(void)
Definition: shlfolder.c:4033
static void test_CallForAttributes(void)
Definition: shlfolder.c:808
static void test_DataObject(void)
Definition: shlfolder.c:5104
static void test_SHGetSetFolderCustomSettings(void)
Definition: shlfolder.c:5290
static void test_GetDefaultSearchGUID(void)
Definition: shlfolder.c:5214

◆ strcmp_wa()

static int strcmp_wa ( LPCWSTR  strw,
const char stra 
)
static

Definition at line 91 of file shlfolder.c.

92{
93 CHAR buf[512];
94 WideCharToMultiByte(CP_ACP, 0, strw, -1, buf, sizeof(buf), NULL, NULL);
95 return lstrcmpA(stra, buf);
96}
#define WideCharToMultiByte
Definition: compat.h:111
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4198
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
static const char * strw(LPCWSTR x)
Definition: actctx.c:49
char CHAR
Definition: xmlstorage.h:175

Referenced by r_verify_pidl().

◆ test_BindToObject()

static void test_BindToObject ( void  )
static

Definition at line 416 of file shlfolder.c.

417{
418 HRESULT hr;
419 UINT cChars;
420 IShellFolder *psfDesktop, *psfChild, *psfMyComputer, *psfSystemDir;
421 SHITEMID emptyitem = { 0, { 0 } };
422 LPITEMIDLIST pidlMyComputer, pidlSystemDir, pidl, pidlEmpty = (LPITEMIDLIST)&emptyitem;
423 WCHAR wszSystemDir[MAX_PATH];
424 char szSystemDir[MAX_PATH];
425 char buf[MAX_PATH];
428 HANDLE hfile;
429 WCHAR wszMyComputer[] = {
430 ':',':','{','2','0','D','0','4','F','E','0','-','3','A','E','A','-','1','0','6','9','-',
431 'A','2','D','8','-','0','8','0','0','2','B','3','0','3','0','9','D','}',0 };
432 static const CHAR filename_html[] = "winetest.html";
433 static const CHAR filename_txt[] = "winetest.txt";
434 static const CHAR filename_foo[] = "winetest.foo";
435
436 /* The following tests shows that BindToObject should fail with E_INVALIDARG if called
437 * with an empty pidl. This is tested for Desktop, MyComputer and the FS ShellFolder
438 */
439 hr = SHGetDesktopFolder(&psfDesktop);
440 ok (hr == S_OK, "SHGetDesktopFolder failed! hr = %08x\n", hr);
441 if (hr != S_OK) return;
442
443 hr = IShellFolder_BindToObject(psfDesktop, pidlEmpty, NULL, &IID_IShellFolder, (LPVOID*)&psfChild);
444 ok (hr == E_INVALIDARG, "Desktop's BindToObject should fail, when called with empty pidl! hr = %08x\n", hr);
445
446 hr = IShellFolder_BindToObject(psfDesktop, NULL, NULL, &IID_IShellFolder, (LPVOID*)&psfChild);
447 ok (hr == E_INVALIDARG, "Desktop's BindToObject should fail, when called with NULL pidl! hr = %08x\n", hr);
448
449 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, wszMyComputer, NULL, &pidlMyComputer, NULL);
450 ok (hr == S_OK, "Desktop's ParseDisplayName failed to parse MyComputer's CLSID! hr = %08x\n", hr);
451 if (hr != S_OK) {
452 IShellFolder_Release(psfDesktop);
453 return;
454 }
455
456 hr = IShellFolder_BindToObject(psfDesktop, pidlMyComputer, NULL, &IID_IShellFolder, (LPVOID*)&psfMyComputer);
457 ok (hr == S_OK, "Desktop failed to bind to MyComputer object! hr = %08x\n", hr);
458 IShellFolder_Release(psfDesktop);
459 IMalloc_Free(ppM, pidlMyComputer);
460 if (hr != S_OK) return;
461
462 hr = IShellFolder_BindToObject(psfMyComputer, pidlEmpty, NULL, &IID_IShellFolder, (LPVOID*)&psfChild);
463 ok (hr == E_INVALIDARG, "MyComputers's BindToObject should fail, when called with empty pidl! hr = %08x\n", hr);
464
465 hr = IShellFolder_BindToObject(psfMyComputer, NULL, NULL, &IID_IShellFolder, (LPVOID*)&psfChild);
466 ok (hr == E_INVALIDARG, "MyComputers's BindToObject should fail, when called with NULL pidl! hr = %08x\n", hr);
467
468 cChars = GetSystemDirectoryA(szSystemDir, MAX_PATH);
469 ok (cChars > 0 && cChars < MAX_PATH, "GetSystemDirectoryA failed! LastError: %u\n", GetLastError());
470 if (cChars == 0 || cChars >= MAX_PATH) {
471 IShellFolder_Release(psfMyComputer);
472 return;
473 }
474 MultiByteToWideChar(CP_ACP, 0, szSystemDir, -1, wszSystemDir, MAX_PATH);
475
476 hr = IShellFolder_ParseDisplayName(psfMyComputer, NULL, NULL, wszSystemDir, NULL, &pidlSystemDir, NULL);
477 ok (hr == S_OK, "MyComputers's ParseDisplayName failed to parse the SystemDirectory! hr = %08x\n", hr);
478 if (hr != S_OK) {
479 IShellFolder_Release(psfMyComputer);
480 return;
481 }
482
483 hr = IShellFolder_BindToObject(psfMyComputer, pidlSystemDir, NULL, &IID_IShellFolder, (LPVOID*)&psfSystemDir);
484 ok (hr == S_OK, "MyComputer failed to bind to a FileSystem ShellFolder! hr = %08x\n", hr);
485 IShellFolder_Release(psfMyComputer);
486 IMalloc_Free(ppM, pidlSystemDir);
487 if (hr != S_OK) return;
488
489 hr = IShellFolder_BindToObject(psfSystemDir, pidlEmpty, NULL, &IID_IShellFolder, (LPVOID*)&psfChild);
490 ok (hr == E_INVALIDARG,
491 "FileSystem ShellFolder's BindToObject should fail, when called with empty pidl! hr = %08x\n", hr);
492
493 hr = IShellFolder_BindToObject(psfSystemDir, NULL, NULL, &IID_IShellFolder, (LPVOID*)&psfChild);
494 ok (hr == E_INVALIDARG,
495 "FileSystem ShellFolder's BindToObject should fail, when called with NULL pidl! hr = %08x\n", hr);
496
497 IShellFolder_Release(psfSystemDir);
498
500 if(!cChars)
501 {
502 skip("Failed to get current directory, skipping tests.\n");
503 return;
504 }
505 if(buf[cChars-1] != '\\') lstrcatA(buf, "\\");
506
507 SHGetDesktopFolder(&psfDesktop);
508
509 /* Attempt BindToObject on files. */
510
511 /* .html */
513 lstrcatA(pathA, filename_html);
515 if(hfile != INVALID_HANDLE_VALUE)
516 {
517 CloseHandle(hfile);
519 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, path, NULL, &pidl, NULL);
520 ok(hr == S_OK, "Got 0x%08x\n", hr);
521 if(SUCCEEDED(hr))
522 {
523 hr = IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (void**)&psfChild);
524 ok(hr == S_OK ||
525 hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), /* XP, W2K3 */
526 "Got 0x%08x\n", hr);
527 if(SUCCEEDED(hr))
528 {
529 IPersist *pp;
530 hr = IShellFolder_QueryInterface(psfChild, &IID_IPersist, (void**)&pp);
531 ok(hr == S_OK, "Got 0x%08x\n", hr);
532 if(SUCCEEDED(hr))
533 {
534 CLSID id;
535 hr = IPersist_GetClassID(pp, &id);
536 ok(hr == S_OK, "Got 0x%08x\n", hr);
537 ok(IsEqualIID(&id, &CLSID_ShellDocObjView), "Unexpected classid %s\n", wine_dbgstr_guid(&id));
538 IPersist_Release(pp);
539 }
540
541 IShellFolder_Release(psfChild);
542 }
543 ILFree(pidl);
544 }
546 }
547 else
548 win_skip("Failed to create .html testfile.\n");
549
550 /* .txt */
552 lstrcatA(pathA, filename_txt);
554 if(hfile != INVALID_HANDLE_VALUE)
555 {
556 CloseHandle(hfile);
558 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, path, NULL, &pidl, NULL);
559 ok(hr == S_OK, "Got 0x%08x\n", hr);
560 if(SUCCEEDED(hr))
561 {
562 hr = IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (void**)&psfChild);
563 ok(hr == E_FAIL || /* Vista+ */
564 hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), /* XP, W2K3 */
565 "Got 0x%08x\n", hr);
566 if(SUCCEEDED(hr)) IShellFolder_Release(psfChild);
567 ILFree(pidl);
568 }
570 }
571 else
572 win_skip("Failed to create .txt testfile.\n");
573
574 /* .foo */
576 lstrcatA(pathA, filename_foo);
578 if(hfile != INVALID_HANDLE_VALUE)
579 {
580 CloseHandle(hfile);
582 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, path, NULL, &pidl, NULL);
583 ok(hr == S_OK, "Got 0x%08x\n", hr);
584 if(SUCCEEDED(hr))
585 {
586 hr = IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (void**)&psfChild);
587 ok(hr == E_FAIL || /* Vista+ */
588 hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), /* XP, W2K3 */
589 "Got 0x%08x\n", hr);
590 if(SUCCEEDED(hr)) IShellFolder_Release(psfChild);
591 ILFree(pidl);
592 }
594 }
595 else
596 win_skip("Failed to create .foo testfile.\n");
597
598 /* And on the desktop */
600 lstrcatA(pathA, "\\");
601 lstrcatA(pathA, filename_html);
603
604 CloseHandle(hfile);
606 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, path, NULL, &pidl, NULL);
607 ok(hr == S_OK, "Got 0x%08x\n", hr);
608
609 hr = IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (void **)&psfChild);
610 ok(hr == S_OK ||
611 hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), /* XP, W2K3 */
612 "Got 0x%08x\n", hr);
613 if(SUCCEEDED(hr)) IShellFolder_Release(psfChild);
614 ILFree(pidl);
615 if(!DeleteFileA(pathA))
616 trace("Failed to delete: %d\n", GetLastError());
617
619 lstrcatA(pathA, "\\");
620 lstrcatA(pathA, filename_foo);
622
623 CloseHandle(hfile);
625 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, path, NULL, &pidl, NULL);
626 ok(hr == S_OK, "Got 0x%08x\n", hr);
627
628 hr = IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (void **)&psfChild);
629 ok(hr == E_FAIL || /* Vista+ */
630 hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), /* XP, W2K3 */
631 "Got 0x%08x\n", hr);
632 if(SUCCEEDED(hr)) IShellFolder_Release(psfChild);
633 ILFree(pidl);
635
636 IShellFolder_Release(psfDesktop);
637}
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
#define skip(...)
Definition: atltest.h:64
DWORD WINAPI GetCurrentDirectoryA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
Definition: path.c:2146
UINT WINAPI GetSystemDirectoryA(OUT LPSTR lpBuffer, IN UINT uSize)
Definition: path.c:2283
BOOL WINAPI SHGetSpecialFolderPathA(HWND hwndOwner, LPSTR szPath, int nFolder, BOOL bCreate)
Definition: shellpath.c:3206
#define IShellFolder_ParseDisplayName
Definition: utils.cpp:14
GLuint pathA
Definition: glext.h:11719
GLuint id
Definition: glext.h:5910
#define SUCCEEDED(hr)
Definition: intsafe.h:50
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
LPSTR WINAPI lstrcatA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:123
#define win_skip
Definition: minitest.h:67
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
static SCRIPT_CACHE SCRIPT_ANALYSIS OPENTYPE_TAG OPENTYPE_TAG int TEXTRANGE_PROPERTIES int const WCHAR int cChars
Definition: usp10.c:64
unsigned int UINT
Definition: ndis.h:50
void WINAPI ILFree(LPITEMIDLIST pidl)
Definition: pidl.c:1045
const GUID IID_IPersist
Definition: proxy.cpp:14
static __inline const char * wine_dbgstr_guid(const GUID *id)
Definition: debug.h:197
#define CSIDL_DESKTOP
Definition: shlobj.h:2179
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
Definition: winerror.h:210

Referenced by START_TEST().

◆ test_CallForAttributes()

static void test_CallForAttributes ( void  )
static

Definition at line 808 of file shlfolder.c.

809{
810 HKEY hKey;
811 LONG lResult;
812 HRESULT hr;
814 LPSHELLFOLDER psfDesktop;
815 LPITEMIDLIST pidlMyDocuments;
816 DWORD dwAttributes, dwCallForAttributes, dwOrigAttributes, dwOrigCallForAttributes;
817 static const WCHAR wszAttributes[] = { 'A','t','t','r','i','b','u','t','e','s',0 };
818 static const WCHAR wszCallForAttributes[] = {
819 'C','a','l','l','F','o','r','A','t','t','r','i','b','u','t','e','s',0 };
820 static const WCHAR wszMyDocumentsKey[] = {
821 'C','L','S','I','D','\\','{','4','5','0','D','8','F','B','A','-','A','D','2','5','-',
822 '1','1','D','0','-','9','8','A','8','-','0','8','0','0','3','6','1','B','1','1','0','3','}',
823 '\\','S','h','e','l','l','F','o','l','d','e','r',0 };
824 WCHAR wszMyDocuments[] = {
825 ':',':','{','4','5','0','D','8','F','B','A','-','A','D','2','5','-','1','1','D','0','-',
826 '9','8','A','8','-','0','8','0','0','3','6','1','B','1','1','0','3','}',0 };
827
828 /* For the root of a namespace extension, the attributes are not queried by binding
829 * to the object and calling GetAttributesOf. Instead, the attributes are read from
830 * the registry value HKCR/CLSID/{...}/ShellFolder/Attributes. This is documented on MSDN.
831 *
832 * The MyDocuments shellfolder on WinXP has a HKCR/CLSID/{...}/ShellFolder/CallForAttributes
833 * value. It seems that if the folder is queried for one of the flags set in CallForAttributes,
834 * the shell does bind to the folder object and calls GetAttributesOf. This is not documented
835 * on MSDN. This test is meant to document the observed behaviour on WinXP SP2.
836 */
837 hr = SHGetDesktopFolder(&psfDesktop);
838 ok (hr == S_OK, "SHGetDesktopFolder failed! hr = %08x\n", hr);
839 if (hr != S_OK) return;
840
841 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, wszMyDocuments, NULL,
842 &pidlMyDocuments, NULL);
843 ok (hr == S_OK,
844 "Desktop's ParseDisplayName failed to parse MyDocuments's CLSID! hr = %08x\n", hr);
845 if (hr != S_OK) {
846 IShellFolder_Release(psfDesktop);
847 return;
848 }
849
850 dwAttributes = 0xffffffff;
851 hr = IShellFolder_GetAttributesOf(psfDesktop, 1,
852 (LPCITEMIDLIST*)&pidlMyDocuments, &dwAttributes);
853 ok (hr == S_OK, "Desktop->GetAttributesOf(MyDocuments) failed! hr = %08x\n", hr);
854
855 /* We need the following setup (as observed on WinXP SP2), for the tests to make sense. */
856 ok (dwAttributes & SFGAO_FILESYSTEM, "SFGAO_FILESYSTEM attribute is not set for MyDocuments!\n");
857 ok (!(dwAttributes & SFGAO_ISSLOW), "SFGAO_ISSLOW attribute is set for MyDocuments!\n");
858 ok (!(dwAttributes & SFGAO_GHOSTED), "SFGAO_GHOSTED attribute is set for MyDocuments!\n");
859
860 /* We don't have the MyDocuments shellfolder in wine yet, and thus we don't have the registry
861 * key. So the test will return at this point, if run on wine.
862 */
863 lResult = RegOpenKeyExW(HKEY_CLASSES_ROOT, wszMyDocumentsKey, 0, KEY_WRITE|KEY_READ, &hKey);
864 ok (lResult == ERROR_SUCCESS ||
865 lResult == ERROR_ACCESS_DENIED,
866 "RegOpenKeyEx failed! result: %08x\n", lResult);
867 if (lResult != ERROR_SUCCESS) {
868 if (lResult == ERROR_ACCESS_DENIED)
869 skip("Not enough rights to open the registry key\n");
870 IMalloc_Free(ppM, pidlMyDocuments);
871 IShellFolder_Release(psfDesktop);
872 return;
873 }
874
875 /* Query MyDocuments' Attributes value, to be able to restore it later. */
876 dwSize = sizeof(DWORD);
877 lResult = RegQueryValueExW(hKey, wszAttributes, NULL, NULL, (LPBYTE)&dwOrigAttributes, &dwSize);
878 ok (lResult == ERROR_SUCCESS, "RegQueryValueEx failed! result: %08x\n", lResult);
879 if (lResult != ERROR_SUCCESS) {
881 IMalloc_Free(ppM, pidlMyDocuments);
882 IShellFolder_Release(psfDesktop);
883 return;
884 }
885
886 /* Query MyDocuments' CallForAttributes value, to be able to restore it later. */
887 dwSize = sizeof(DWORD);
888 lResult = RegQueryValueExW(hKey, wszCallForAttributes, NULL, NULL,
889 (LPBYTE)&dwOrigCallForAttributes, &dwSize);
890 ok (lResult == ERROR_SUCCESS, "RegQueryValueEx failed! result: %08x\n", lResult);
891 if (lResult != ERROR_SUCCESS) {
893 IMalloc_Free(ppM, pidlMyDocuments);
894 IShellFolder_Release(psfDesktop);
895 return;
896 }
897
898 /* Define via the Attributes value that MyDocuments attributes are SFGAO_ISSLOW and
899 * SFGAO_GHOSTED and that MyDocuments should be called for the SFGAO_ISSLOW and
900 * SFGAO_FILESYSTEM attributes. */
901 dwAttributes = SFGAO_ISSLOW|SFGAO_GHOSTED;
902 RegSetValueExW(hKey, wszAttributes, 0, REG_DWORD, (LPBYTE)&dwAttributes, sizeof(DWORD));
903 dwCallForAttributes = SFGAO_ISSLOW|SFGAO_FILESYSTEM;
904 RegSetValueExW(hKey, wszCallForAttributes, 0, REG_DWORD,
905 (LPBYTE)&dwCallForAttributes, sizeof(DWORD));
906
907 /* Although it is not set in CallForAttributes, the SFGAO_GHOSTED flag is reset by
908 * GetAttributesOf. It seems that once there is a single attribute queried, for which
909 * CallForAttributes is set, all flags are taken from the GetAttributesOf call and
910 * the flags in Attributes are ignored.
911 */
912 dwAttributes = SFGAO_ISSLOW|SFGAO_GHOSTED|SFGAO_FILESYSTEM;
913 hr = IShellFolder_GetAttributesOf(psfDesktop, 1,
914 (LPCITEMIDLIST*)&pidlMyDocuments, &dwAttributes);
915 ok (hr == S_OK, "Desktop->GetAttributesOf(MyDocuments) failed! hr = %08x\n", hr);
916 if (hr == S_OK)
917 ok (dwAttributes == SFGAO_FILESYSTEM,
918 "Desktop->GetAttributes(MyDocuments) returned unexpected attributes: %08x\n",
920
921 /* Restore MyDocuments' original Attributes and CallForAttributes registry values */
922 RegSetValueExW(hKey, wszAttributes, 0, REG_DWORD, (LPBYTE)&dwOrigAttributes, sizeof(DWORD));
923 RegSetValueExW(hKey, wszCallForAttributes, 0, REG_DWORD,
924 (LPBYTE)&dwOrigCallForAttributes, sizeof(DWORD));
926 IMalloc_Free(ppM, pidlMyDocuments);
927 IShellFolder_Release(psfDesktop);
928}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4882
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
#define ERROR_ACCESS_DENIED
Definition: compat.h:97
FxAutoRegKey hKey
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
#define KEY_READ
Definition: nt_native.h:1026
#define KEY_WRITE
Definition: nt_native.h:1034
long LONG
Definition: pedump.c:60
#define REG_DWORD
Definition: sdbapi.c:615
static IBindCtx void **static IBindCtx void **static DWORD
Definition: shlfolder.c:52
unsigned char * LPBYTE
Definition: typedefs.h:53
DWORD dwAttributes
Definition: vdmdbg.h:34
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10

Referenced by START_TEST().

◆ test_contextmenu()

static void test_contextmenu ( IContextMenu menu,
BOOL  background 
)
static

Definition at line 4401 of file shlfolder.c.

4402{
4404 const int id_upper_limit = 32767;
4405 const int baseItem = 0x40;
4406 INT max_id, max_id_check;
4407 UINT count, i;
4408 HRESULT hr;
4409
4411
4412 hr = IContextMenu_QueryContextMenu(menu, hmenu, 0, baseItem, id_upper_limit, CMF_NORMAL);
4413 ok(SUCCEEDED(hr), "Failed to query the menu, hr %#x.\n", hr);
4414
4415 max_id = HRESULT_CODE(hr) - 1; /* returns max_id + 1 */
4416 ok(max_id <= id_upper_limit, "Got %d\n", max_id);
4418 ok(count, "Got %d\n", count);
4419
4420 max_id_check = 0;
4421 for (i = 0; i < count; i++)
4422 {
4423 MENUITEMINFOA mii;
4424 INT res;
4425 char buf[255], buf2[255];
4426 ZeroMemory(&mii, sizeof(MENUITEMINFOA));
4427 mii.cbSize = sizeof(MENUITEMINFOA);
4429 mii.dwTypeData = buf2;
4430 mii.cch = sizeof(buf2);
4431
4432 res = GetMenuItemInfoA(hmenu, i, TRUE, &mii);
4433 ok(res, "Failed to get menu item info, error %d.\n", GetLastError());
4434
4435 ok((mii.wID <= id_upper_limit) || (mii.fType & MFT_SEPARATOR),
4436 "Got non-separator ID out of range: %d (type: %x)\n", mii.wID, mii.fType);
4437 if (!(mii.fType & MFT_SEPARATOR))
4438 {
4439 max_id_check = (mii.wID > max_id_check) ? mii.wID : max_id_check;
4440 hr = IContextMenu_GetCommandString(menu, mii.wID - baseItem, GCS_VERBA, 0, buf, sizeof(buf));
4441 todo_wine_if(background)
4442 ok(SUCCEEDED(hr) || hr == E_NOTIMPL, "for id 0x%x got 0x%08x (menustr: %s)\n", mii.wID - baseItem, hr, mii.dwTypeData);
4443 if (SUCCEEDED(hr))
4444 trace("for id 0x%x got string %s (menu string: %s)\n", mii.wID - baseItem, buf, mii.dwTypeData);
4445 else if (hr == E_NOTIMPL)
4446 trace("for id 0x%x got E_NOTIMPL (menu string: %s)\n", mii.wID - baseItem, mii.dwTypeData);
4447 }
4448 }
4449 max_id_check -= baseItem;
4450 ok((max_id_check == max_id) ||
4451 (max_id_check == max_id-1) || /* Win 7 */
4452 (max_id_check == max_id-2) || /* Win 8 */
4453 (max_id_check == max_id-3),
4454 "Not equal (or near equal), got %d and %d\n", max_id_check, max_id);
4455
4456 if (count)
4457 {
4458 CMINVOKECOMMANDINFO cmi;
4459
4460 memset(&cmi, 0, sizeof(CMINVOKECOMMANDINFO));
4461 cmi.cbSize = sizeof(CMINVOKECOMMANDINFO);
4462
4463 /* Attempt to execute a nonexistent command */
4464 cmi.lpVerb = MAKEINTRESOURCEA(9999);
4465 hr = IContextMenu_InvokeCommand(menu, &cmi);
4466 todo_wine_if(background)
4467 ok(hr == E_INVALIDARG, "Got 0x%08x\n", hr);
4468
4469 cmi.lpVerb = "foobar_wine_test";
4470 hr = IContextMenu_InvokeCommand(menu, &cmi);
4471 todo_wine_if(background)
4472 ok((hr == E_INVALIDARG) || (hr == E_FAIL /* Win7 */) ||
4473 (hr == HRESULT_FROM_WIN32(ERROR_NO_ASSOCIATION) /* Vista */),
4474 "Unexpected hr %#x.\n", hr);
4475 }
4476
4478}
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLuint res
Definition: glext.h:9613
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define todo_wine_if(is_todo)
Definition: minitest.h:81
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
static HMENU hmenu
Definition: win.c:66
static void test_contextmenu_qi(IContextMenu *menu, BOOL todo)
Definition: shlfolder.c:4383
LPSTR dwTypeData
Definition: winuser.h:3353
int32_t INT
Definition: typedefs.h:58
#define ERROR_NO_ASSOCIATION
Definition: winerror.h:1001
#define HRESULT_CODE(hr)
Definition: winerror.h:188
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:838
#define MIIM_STRING
Definition: winuser.h:738
#define MIIM_ID
Definition: winuser.h:733
int WINAPI GetMenuItemCount(_In_opt_ HMENU)
struct tagMENUITEMINFOA MENUITEMINFOA
#define MIIM_FTYPE
Definition: winuser.h:740
#define MFT_SEPARATOR
Definition: winuser.h:755
#define MAKEINTRESOURCEA(i)
Definition: winuser.h:581
BOOL WINAPI DestroyMenu(_In_ HMENU)
BOOL WINAPI GetMenuItemInfoA(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOA)

◆ test_contextmenu_qi()

static void test_contextmenu_qi ( IContextMenu menu,
BOOL  todo 
)
static

Definition at line 4383 of file shlfolder.c.

4384{
4385 IUnknown *unk;
4386 HRESULT hr;
4387
4388 hr = IContextMenu_QueryInterface(menu, &IID_IShellExtInit, (void **)&unk);
4390 ok(hr == S_OK, "Failed to get IShellExtInit, hr %#x.\n", hr);
4391if (hr == S_OK)
4392 IUnknown_Release(unk);
4393
4394 hr = IContextMenu_QueryInterface(menu, &IID_IObjectWithSite, (void **)&unk);
4396 ok(hr == S_OK, "Failed to get IShellExtInit, hr %#x.\n", hr);
4397if (hr == S_OK)
4398 IUnknown_Release(unk);
4399}
const IID IID_IObjectWithSite
int todo
Definition: shlfolder.c:184

Referenced by test_contextmenu(), and test_SHCreateDefaultContextMenu().

◆ test_DataObject()

static void test_DataObject ( void  )
static

Definition at line 5104 of file shlfolder.c.

5105{
5106 IShellFolder *desktop;
5107 IDataObject *data_obj;
5108 HRESULT hres;
5109 IEnumIDList *peidl;
5110 LPITEMIDLIST apidl;
5111 FORMATETC fmt;
5112 DWORD cf_shellidlist;
5113 STGMEDIUM medium;
5114
5115 SHGetDesktopFolder(&desktop);
5116
5117 hres = IShellFolder_EnumObjects(desktop, NULL,
5118 SHCONTF_NONFOLDERS|SHCONTF_FOLDERS|SHCONTF_INCLUDEHIDDEN, &peidl);
5119 ok(hres == S_OK, "got %x\n", hres);
5120
5121 if(IEnumIDList_Next(peidl, 1, &apidl, NULL) != S_OK) {
5122 skip("no files on desktop - skipping GetDataObject tests\n");
5123 IEnumIDList_Release(peidl);
5124 IShellFolder_Release(desktop);
5125 return;
5126 }
5127 IEnumIDList_Release(peidl);
5128
5129 hres = IShellFolder_GetUIObjectOf(desktop, NULL, 1, (LPCITEMIDLIST*)&apidl,
5130 &IID_IDataObject, NULL, (void**)&data_obj);
5131 ok(hres == S_OK, "got %x\n", hres);
5132 ILFree(apidl);
5133 IShellFolder_Release(desktop);
5134
5136 fmt.cfFormat = cf_shellidlist;
5137 fmt.ptd = NULL;
5138 fmt.dwAspect = DVASPECT_CONTENT;
5139 fmt.lindex = -1;
5140 fmt.tymed = TYMED_HGLOBAL;
5141 hres = IDataObject_QueryGetData(data_obj, &fmt);
5142 ok(hres == S_OK, "got %x\n", hres);
5143
5144 fmt.tymed = TYMED_HGLOBAL | TYMED_ISTREAM;
5145 hres = IDataObject_QueryGetData(data_obj, &fmt);
5146 ok(hres == S_OK, "got %x\n", hres);
5147
5148 fmt.tymed = TYMED_ISTREAM;
5149 hres = IDataObject_QueryGetData(data_obj, &fmt);
5150 todo_wine ok(hres == S_FALSE, "got %x\n", hres);
5151
5152 fmt.tymed = TYMED_HGLOBAL | TYMED_ISTREAM;
5153 hres = IDataObject_GetData(data_obj, &fmt, &medium);
5154 ok(hres == S_OK, "got %x\n", hres);
5155 ok(medium.tymed == TYMED_HGLOBAL, "medium.tymed = %x\n", medium.tymed);
5156 ReleaseStgMedium(&medium);
5157
5158 IDataObject_Release(data_obj);
5159}
void WINAPI ReleaseStgMedium(STGMEDIUM *pmedium)
Definition: ole2.c:2033
#define todo_wine
Definition: minitest.h:80
HRESULT hres
Definition: protocol.c:465
const GUID IID_IDataObject
static const WCHAR CFSTR_SHELLIDLISTW[]
Definition: shlobj.h:514
Definition: dsound.c:943
#define S_FALSE
Definition: winerror.h:3451
UINT WINAPI RegisterClipboardFormatW(_In_ LPCWSTR)

Referenced by START_TEST().

◆ test_desktop_IPersist()

static void test_desktop_IPersist ( void  )
static

Definition at line 4327 of file shlfolder.c.

4328{
4329 IShellFolder *desktop;
4330 IPersist *persist;
4331 IPersistFolder2 *ppf2;
4332 CLSID clsid;
4333 HRESULT hr;
4334
4335 hr = SHGetDesktopFolder(&desktop);
4336 ok(hr == S_OK, "failed %08x\n", hr);
4337
4338 hr = IShellFolder_QueryInterface(desktop, &IID_IPersist, (void**)&persist);
4339 ok(hr == S_OK, "failed %08x\n", hr);
4340
4341 if (hr == S_OK)
4342 {
4343 if (0)
4344 {
4345 /* crashes on native */
4346 IPersist_GetClassID(persist, NULL);
4347 }
4348 memset(&clsid, 0, sizeof(clsid));
4349 hr = IPersist_GetClassID(persist, &clsid);
4350 ok(hr == S_OK, "failed %08x\n", hr);
4351 ok(IsEqualIID(&CLSID_ShellDesktop, &clsid), "Expected CLSID_ShellDesktop\n");
4352 IPersist_Release(persist);
4353 }
4354
4355 hr = IShellFolder_QueryInterface(desktop, &IID_IPersistFolder2, (void**)&ppf2);
4356 ok(hr == S_OK || broken(hr == E_NOINTERFACE) /* pre-Vista */, "failed %08x\n", hr);
4357 if(SUCCEEDED(hr))
4358 {
4359 IPersistFolder *ppf;
4360 LPITEMIDLIST pidl;
4361 hr = IShellFolder_QueryInterface(desktop, &IID_IPersistFolder, (void**)&ppf);
4362 ok(hr == S_OK, "IID_IPersistFolder2 without IID_IPersistFolder.\n");
4363 if(SUCCEEDED(hr))
4364 IPersistFolder_Release(ppf);
4365
4366 todo_wine {
4367 hr = IPersistFolder2_Initialize(ppf2, NULL);
4368 ok(hr == S_OK, "got %08x\n", hr);
4369 }
4370
4371 pidl = NULL;
4372 hr = IPersistFolder2_GetCurFolder(ppf2, &pidl);
4373 ok(hr == S_OK, "got %08x\n", hr);
4374 ok(pidl != NULL, "pidl was NULL.\n");
4375 if(SUCCEEDED(hr)) ILFree(pidl);
4376
4377 IPersistFolder2_Release(ppf2);
4378 }
4379
4380 IShellFolder_Release(desktop);
4381}
const CLSID * clsid
Definition: msctf.cpp:50

Referenced by START_TEST().

◆ test_EnumObjects()

static void test_EnumObjects ( IShellFolder iFolder)
static

Definition at line 321 of file shlfolder.c.

322{
323 IEnumIDList *iEnumList;
324 LPITEMIDLIST newPIDL, idlArr[10];
325 ULONG NumPIDLs;
326 int i=0, j;
327 HRESULT hr;
328
329 static const WORD iResults [5][5] =
330 {
331 { 0,-1,-1,-1,-1},
332 { 1, 0,-1,-1,-1},
333 { 1, 1, 0,-1,-1},
334 { 1, 1, 1, 0,-1},
335 { 1, 1, 1, 1, 0}
336 };
337
338#define SFGAO_testfor SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR | SFGAO_CAPABILITYMASK
339 /* Don't test for SFGAO_HASSUBFOLDER since we return real state and native cached */
340 static const ULONG attrs[5] =
341 {
342 SFGAO_CAPABILITYMASK | SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR,
343 SFGAO_CAPABILITYMASK | SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR,
344 SFGAO_CAPABILITYMASK | SFGAO_FILESYSTEM,
345 SFGAO_CAPABILITYMASK | SFGAO_FILESYSTEM,
346 SFGAO_CAPABILITYMASK | SFGAO_FILESYSTEM,
347 };
348 static const ULONG full_attrs[5] =
349 {
350 SFGAO_CAPABILITYMASK | SFGAO_STORAGE | SFGAO_STORAGEANCESTOR | SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR,
351 SFGAO_CAPABILITYMASK | SFGAO_STORAGE | SFGAO_STORAGEANCESTOR | SFGAO_FILESYSTEM | SFGAO_FOLDER | SFGAO_FILESYSANCESTOR,
352 SFGAO_CAPABILITYMASK | SFGAO_STREAM | SFGAO_FILESYSTEM,
353 SFGAO_CAPABILITYMASK | SFGAO_STREAM | SFGAO_FILESYSTEM,
354 SFGAO_CAPABILITYMASK | SFGAO_STREAM | SFGAO_FILESYSTEM,
355 };
356
357 hr = IShellFolder_EnumObjects(iFolder, NULL, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN, &iEnumList);
358 ok(hr == S_OK, "EnumObjects failed %08x\n", hr);
359
360 /* This is to show that, contrary to what is said on MSDN, on IEnumIDList::Next,
361 * the filesystem shellfolders return S_OK even if less than 'celt' items are
362 * returned (in contrast to S_FALSE). We have to do it in a loop since WinXP
363 * only ever returns a single entry per call. */
364 while (IEnumIDList_Next(iEnumList, 10-i, &idlArr[i], &NumPIDLs) == S_OK)
365 i += NumPIDLs;
366 ok (i == 5, "i: %d\n", i);
367
368 hr = IEnumIDList_Release(iEnumList);
369 ok(hr == S_OK, "IEnumIDList_Release failed %08x\n", hr);
370
371 /* Sort them first in case of wrong order from system */
372 for (i=0;i<5;i++) for (j=0;j<5;j++)
373 if ((SHORT)IShellFolder_CompareIDs(iFolder, 0, idlArr[i], idlArr[j]) < 0)
374 {
375 newPIDL = idlArr[i];
376 idlArr[i] = idlArr[j];
377 idlArr[j] = newPIDL;
378 }
379
380 for (i=0;i<5;i++) for (j=0;j<5;j++)
381 {
382 hr = IShellFolder_CompareIDs(iFolder, 0, idlArr[i], idlArr[j]);
383 ok(hr == iResults[i][j], "Got %x expected [%d]-[%d]=%x\n", hr, i, j, iResults[i][j]);
384 }
385
386
387 for (i = 0; i < 5; i++)
388 {
390#define SFGAO_VISTA SFGAO_DROPTARGET | SFGAO_CANLINK | SFGAO_CANCOPY
391 /* Native returns all flags no matter what we ask for */
392 flags = SFGAO_CANCOPY;
393 hr = IShellFolder_GetAttributesOf(iFolder, 1, (LPCITEMIDLIST*)(idlArr + i), &flags);
395 ok(hr == S_OK, "GetAttributesOf returns %08x\n", hr);
396 ok(flags == (attrs[i]) ||
397 flags == ((attrs[i] & ~SFGAO_CAPABILITYMASK) | SFGAO_VISTA), /* Vista and higher */
398 "GetAttributesOf[%i] got %08x, expected %08x\n", i, flags, attrs[i]);
399
401 hr = IShellFolder_GetAttributesOf(iFolder, 1, (LPCITEMIDLIST*)(idlArr + i), &flags);
403 ok(hr == S_OK, "GetAttributesOf returns %08x\n", hr);
404 ok(flags == attrs[i], "GetAttributesOf[%i] got %08x, expected %08x\n", i, flags, attrs[i]);
405
406 flags = ~0u;
407 hr = IShellFolder_GetAttributesOf(iFolder, 1, (LPCITEMIDLIST*)(idlArr + i), &flags);
408 ok(hr == S_OK, "GetAttributesOf returns %08x\n", hr);
409 ok((flags & ~(SFGAO_HASSUBFOLDER|SFGAO_COMPRESSED)) == full_attrs[i], "%d: got %08x expected %08x\n", i, flags, full_attrs[i]);
410 }
411
412 for (i=0;i<5;i++)
413 IMalloc_Free(ppM, idlArr[i]);
414}
#define IShellFolder_CompareIDs
Definition: utils.cpp:15
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
Definition: ebrowser.c:83
unsigned short WORD
Definition: ntddk_ex.h:93
GLbitfield flags
Definition: glext.h:7161
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
short SHORT
Definition: pedump.c:59
#define SFGAO_testfor
#define SFGAO_VISTA
uint32_t ULONG
Definition: typedefs.h:59

Referenced by test_EnumObjects_and_CompareIDs().

◆ test_EnumObjects_and_CompareIDs()

static void test_EnumObjects_and_CompareIDs ( void  )
static

Definition at line 1213 of file shlfolder.c.

1214{
1215 ITEMIDLIST *newPIDL;
1216 IShellFolder *IDesktopFolder, *testIShellFolder;
1217 char cCurrDirA [MAX_PATH] = {0};
1218 static const CHAR cTestDirA[] = "\\testdir";
1219 WCHAR cTestDirW[MAX_PATH];
1220 int len;
1221 HRESULT hr;
1222
1223 GetCurrentDirectoryA(MAX_PATH, cCurrDirA);
1224 len = lstrlenA(cCurrDirA);
1225
1226 if(len == 0) {
1227 win_skip("GetCurrentDirectoryA returned empty string. Skipping test_EnumObjects_and_CompareIDs\n");
1228 return;
1229 }
1230 if(cCurrDirA[len-1] == '\\')
1231 cCurrDirA[len-1] = 0;
1232
1233 lstrcatA(cCurrDirA, cTestDirA);
1234 MultiByteToWideChar(CP_ACP, 0, cCurrDirA, -1, cTestDirW, MAX_PATH);
1235
1236 hr = SHGetDesktopFolder(&IDesktopFolder);
1237 ok(hr == S_OK, "SHGetDesktopfolder failed %08x\n", hr);
1238
1240
1241 hr = IShellFolder_ParseDisplayName(IDesktopFolder, NULL, NULL, cTestDirW, NULL, &newPIDL, 0);
1242 ok(hr == S_OK, "ParseDisplayName failed %08x\n", hr);
1243
1244 hr = IShellFolder_BindToObject(IDesktopFolder, newPIDL, NULL, (REFIID)&IID_IShellFolder, (LPVOID *)&testIShellFolder);
1245 ok(hr == S_OK, "BindToObject failed %08x\n", hr);
1246
1247 test_EnumObjects(testIShellFolder);
1248
1249 IShellFolder_Release(testIShellFolder);
1250
1251 Cleanup();
1252
1253 IMalloc_Free(ppM, newPIDL);
1254
1255 IShellFolder_Release(IDesktopFolder);
1256}
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
static void Cleanup(void)
Definition: shlfolder.c:308
static IBindCtx REFIID
Definition: shlfolder.c:50
static void CreateFilesFolders(void)
Definition: shlfolder.c:296
static void test_EnumObjects(IShellFolder *iFolder)
Definition: shlfolder.c:321

Referenced by START_TEST().

◆ test_FolderShortcut()

static void test_FolderShortcut ( void  )
static

Definition at line 1371 of file shlfolder.c.

1371 {
1372 IPersistPropertyBag *pPersistPropertyBag;
1373 IShellFolder *pShellFolder, *pDesktopFolder;
1374 IPersistFolder3 *pPersistFolder3;
1375 HRESULT hr;
1376 STRRET strret;
1377 WCHAR wszDesktopPath[MAX_PATH], wszBuffer[MAX_PATH];
1378 BOOL result;
1379 CLSID clsid;
1380 LPITEMIDLIST pidlCurrentFolder, pidlWineTestFolder, pidlSubFolder;
1381 HKEY hShellExtKey;
1382 WCHAR wszWineTestFolder[] = {
1383 ':',':','{','9','B','3','5','2','E','B','F','-','2','7','6','5','-','4','5','C','1','-',
1384 'B','4','C','6','-','8','5','C','C','7','F','7','A','B','C','6','4','}',0 };
1385 WCHAR wszShellExtKey[] = { 'S','o','f','t','w','a','r','e','\\',
1386 'M','i','c','r','o','s','o','f','t','\\','W','i','n','d','o','w','s','\\',
1387 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
1388 'E','x','p','l','o','r','e','r','\\','D','e','s','k','t','o','p','\\',
1389 'N','a','m','e','S','p','a','c','e','\\',
1390 '{','9','b','3','5','2','e','b','f','-','2','7','6','5','-','4','5','c','1','-',
1391 'b','4','c','6','-','8','5','c','c','7','f','7','a','b','c','6','4','}',0 };
1392
1393 WCHAR wszSomeSubFolder[] = { 'S','u','b','F','o','l','d','e','r', 0};
1394 static const GUID CLSID_UnixDosFolder =
1395 {0x9d20aae8, 0x0625, 0x44b0, {0x9c, 0xa7, 0x71, 0x88, 0x9c, 0x22, 0x54, 0xd9}};
1396
1397 /* These tests basically show, that CLSID_FolderShortcuts are initialized
1398 * via their IPersistPropertyBag interface. And that the target folder
1399 * is taken from the IPropertyBag's 'Target' property.
1400 */
1401 hr = CoCreateInstance(&CLSID_FolderShortcut, NULL, CLSCTX_INPROC_SERVER,
1402 &IID_IPersistPropertyBag, (LPVOID*)&pPersistPropertyBag);
1403 if (hr == REGDB_E_CLASSNOTREG) {
1404 win_skip("CLSID_FolderShortcut is not implemented\n");
1405 return;
1406 }
1407 ok (hr == S_OK, "CoCreateInstance failed! hr = 0x%08x\n", hr);
1408 if (hr != S_OK) return;
1409
1410 hr = IPersistPropertyBag_Load(pPersistPropertyBag, &InitPropertyBag, NULL);
1411 ok(hr == S_OK, "IPersistPropertyBag_Load failed! hr = %08x\n", hr);
1412 if (hr != S_OK) {
1413 IPersistPropertyBag_Release(pPersistPropertyBag);
1414 return;
1415 }
1416
1417 hr = IPersistPropertyBag_QueryInterface(pPersistPropertyBag, &IID_IShellFolder,
1418 (LPVOID*)&pShellFolder);
1419 IPersistPropertyBag_Release(pPersistPropertyBag);
1420 ok(hr == S_OK, "IPersistPropertyBag_QueryInterface(IShellFolder) failed! hr = %08x\n", hr);
1421 if (hr != S_OK) return;
1422
1423 hr = IShellFolder_GetDisplayNameOf(pShellFolder, NULL, SHGDN_FORPARSING, &strret);
1424 ok(hr == S_OK || broken(hr == E_INVALIDARG) /* win10 */,
1425 "IShellFolder_GetDisplayNameOf(NULL) failed! hr = %08x\n", hr);
1426 if (hr != S_OK) {
1427 IShellFolder_Release(pShellFolder);
1428 return;
1429 }
1430
1432 ok(result, "SHGetSpecialFolderPathW(CSIDL_DESKTOPDIRECTORY) failed! %u\n", GetLastError());
1433 if (!result) return;
1434
1435 StrRetToBufW(&strret, NULL, wszBuffer, MAX_PATH);
1436 ok(!lstrcmpiW(wszDesktopPath, wszBuffer), "FolderShortcut returned incorrect folder!\n");
1437
1438 hr = IShellFolder_QueryInterface(pShellFolder, &IID_IPersistFolder3, (LPVOID*)&pPersistFolder3);
1439 IShellFolder_Release(pShellFolder);
1440 ok(hr == S_OK, "IShellFolder_QueryInterface(IID_IPersistFolder3 failed! hr = 0x%08x\n", hr);
1441 if (hr != S_OK) return;
1442
1443 hr = IPersistFolder3_GetClassID(pPersistFolder3, &clsid);
1444 ok(hr == S_OK, "IPersistFolder3_GetClassID failed! hr=0x%08x\n", hr);
1445 ok(IsEqualCLSID(&clsid, &CLSID_FolderShortcut), "Unexpected CLSID!\n");
1446
1447 hr = IPersistFolder3_GetCurFolder(pPersistFolder3, &pidlCurrentFolder);
1448 todo_wine ok(hr == S_FALSE, "IPersistFolder3_GetCurFolder failed! hr=0x%08x\n", hr);
1449 ok(!pidlCurrentFolder, "IPersistFolder3_GetCurFolder should return a NULL pidl!\n");
1450
1451 /* For FolderShortcut objects, the Initialize method initialized the folder's position in the
1452 * shell namespace. The target folder, read from the property bag above, remains untouched.
1453 * The following tests show this: The itemidlist for some imaginary shellfolder object
1454 * is created and the FolderShortcut is initialized with it. GetCurFolder now returns this
1455 * itemidlist, but GetDisplayNameOf still returns the path from above.
1456 */
1457 hr = SHGetDesktopFolder(&pDesktopFolder);
1458 ok (hr == S_OK, "SHGetDesktopFolder failed! hr = %08x\n", hr);
1459 if (hr != S_OK) return;
1460
1461 /* Temporarily register WineTestFolder as a shell namespace extension at the Desktop.
1462 * Otherwise ParseDisplayName fails on WinXP with E_INVALIDARG */
1463 RegCreateKeyW(HKEY_CURRENT_USER, wszShellExtKey, &hShellExtKey);
1464 RegCloseKey(hShellExtKey);
1465 hr = IShellFolder_ParseDisplayName(pDesktopFolder, NULL, NULL, wszWineTestFolder, NULL,
1466 &pidlWineTestFolder, NULL);
1467 RegDeleteKeyW(HKEY_CURRENT_USER, wszShellExtKey);
1468 IShellFolder_Release(pDesktopFolder);
1469 ok (hr == S_OK, "IShellFolder::ParseDisplayName failed! hr = %08x\n", hr);
1470 if (hr != S_OK) return;
1471
1472 hr = IPersistFolder3_Initialize(pPersistFolder3, pidlWineTestFolder);
1473 ok (hr == S_OK, "IPersistFolder3::Initialize failed! hr = %08x\n", hr);
1474 if (hr != S_OK) {
1475 IPersistFolder3_Release(pPersistFolder3);
1476 ILFree(pidlWineTestFolder);
1477 return;
1478 }
1479
1480 hr = IPersistFolder3_GetCurFolder(pPersistFolder3, &pidlCurrentFolder);
1481 ok(hr == S_OK, "IPersistFolder3_GetCurFolder failed! hr=0x%08x\n", hr);
1482 ok(ILIsEqual(pidlCurrentFolder, pidlWineTestFolder),
1483 "IPersistFolder3_GetCurFolder should return pidlWineTestFolder!\n");
1484 ILFree(pidlCurrentFolder);
1485 ILFree(pidlWineTestFolder);
1486
1487 hr = IPersistFolder3_QueryInterface(pPersistFolder3, &IID_IShellFolder, (LPVOID*)&pShellFolder);
1488 IPersistFolder3_Release(pPersistFolder3);
1489 ok(hr == S_OK, "IPersistFolder3_QueryInterface(IShellFolder) failed! hr = %08x\n", hr);
1490 if (hr != S_OK) return;
1491
1492 hr = IShellFolder_GetDisplayNameOf(pShellFolder, NULL, SHGDN_FORPARSING, &strret);
1493 ok(hr == S_OK, "IShellFolder_GetDisplayNameOf(NULL) failed! hr = %08x\n", hr);
1494 if (hr != S_OK) {
1495 IShellFolder_Release(pShellFolder);
1496 return;
1497 }
1498
1499 StrRetToBufW(&strret, NULL, wszBuffer, MAX_PATH);
1500 ok(!lstrcmpiW(wszDesktopPath, wszBuffer), "FolderShortcut returned incorrect folder!\n");
1501
1502 /* Next few lines are meant to show that children of FolderShortcuts are not FolderShortcuts,
1503 * but ShellFSFolders. */
1504 myPathAddBackslashW(wszDesktopPath);
1505 lstrcatW(wszDesktopPath, wszSomeSubFolder);
1506 if (!CreateDirectoryW(wszDesktopPath, NULL)) {
1507 IShellFolder_Release(pShellFolder);
1508 return;
1509 }
1510
1511 hr = IShellFolder_ParseDisplayName(pShellFolder, NULL, NULL, wszSomeSubFolder, NULL,
1512 &pidlSubFolder, NULL);
1513 RemoveDirectoryW(wszDesktopPath);
1514 ok (hr == S_OK, "IShellFolder::ParseDisplayName failed! hr = %08x\n", hr);
1515 if (hr != S_OK) {
1516 IShellFolder_Release(pShellFolder);
1517 return;
1518 }
1519
1520 hr = IShellFolder_BindToObject(pShellFolder, pidlSubFolder, NULL, &IID_IPersistFolder3,
1521 (LPVOID*)&pPersistFolder3);
1522 IShellFolder_Release(pShellFolder);
1523 ILFree(pidlSubFolder);
1524 ok (hr == S_OK, "IShellFolder::BindToObject failed! hr = %08x\n", hr);
1525 if (hr != S_OK)
1526 return;
1527
1528 /* On windows, we expect CLSID_ShellFSFolder. On wine we relax this constraint
1529 * a little bit and also allow CLSID_UnixDosFolder. */
1530 hr = IPersistFolder3_GetClassID(pPersistFolder3, &clsid);
1531 ok(hr == S_OK, "IPersistFolder3_GetClassID failed! hr=0x%08x\n", hr);
1532 ok(IsEqualCLSID(&clsid, &CLSID_ShellFSFolder) || IsEqualCLSID(&clsid, &CLSID_UnixDosFolder),
1533 "IPersistFolder3::GetClassID returned unexpected CLSID!\n");
1534
1535 IPersistFolder3_Release(pPersistFolder3);
1536}
LONG WINAPI RegDeleteKeyW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey)
Definition: reg.c:1239
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:1201
BOOL WINAPI CreateDirectoryW(IN LPCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
Definition: dir.c:90
BOOL WINAPI RemoveDirectoryW(IN LPCWSTR lpPathName)
Definition: dir.c:732
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4265
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3325
const GUID CLSID_UnixDosFolder
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
Definition: string.c:1530
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
Definition: lstring.c:274
const GUID IID_IPersistPropertyBag
Definition: proxy.cpp:11
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96
static struct IPropertyBag InitPropertyBag
Definition: shlfolder.c:1367
static LPWSTR myPathAddBackslashW(LPWSTR lpszPath)
Definition: shlfolder.c:161
#define REGDB_E_CLASSNOTREG
Definition: winerror.h:3801
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by START_TEST().

◆ test_GetAttributesOf()

static void test_GetAttributesOf ( void  )
static

Definition at line 930 of file shlfolder.c.

931{
932 HRESULT hr;
933 LPSHELLFOLDER psfDesktop, psfMyComputer;
934 SHITEMID emptyitem = { 0, { 0 } };
935 LPCITEMIDLIST pidlEmpty = (LPCITEMIDLIST)&emptyitem;
936 LPITEMIDLIST pidlMyComputer;
938 static const DWORD desktopFlags = SFGAO_STORAGE | SFGAO_HASPROPSHEET | SFGAO_STORAGEANCESTOR |
939 SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_FILESYSTEM | SFGAO_HASSUBFOLDER;
940 static const DWORD myComputerFlags = SFGAO_CANRENAME | SFGAO_CANDELETE | SFGAO_HASPROPSHEET |
941 SFGAO_DROPTARGET | SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_HASSUBFOLDER;
942 WCHAR wszMyComputer[] = {
943 ':',':','{','2','0','D','0','4','F','E','0','-','3','A','E','A','-','1','0','6','9','-',
944 'A','2','D','8','-','0','8','0','0','2','B','3','0','3','0','9','D','}',0 };
945 char cCurrDirA [MAX_PATH] = {0};
946 WCHAR cCurrDirW [MAX_PATH];
947 static WCHAR cTestDirW[] = {'t','e','s','t','d','i','r',0};
948 IShellFolder *IDesktopFolder, *testIShellFolder;
949 ITEMIDLIST *newPIDL;
950 int len;
951
952 hr = SHGetDesktopFolder(&psfDesktop);
953 ok (hr == S_OK, "SHGetDesktopFolder failed! hr = %08x\n", hr);
954 if (hr != S_OK) return;
955
956 /* The Desktop attributes can be queried with a single empty itemidlist, .. */
957 dwFlags = 0xffffffff;
958 hr = IShellFolder_GetAttributesOf(psfDesktop, 1, &pidlEmpty, &dwFlags);
959 ok (hr == S_OK, "Desktop->GetAttributesOf(empty pidl) failed! hr = %08x\n", hr);
960 ok (dwFlags == desktopFlags, "Wrong Desktop attributes: %08x\n", dwFlags);
961
962 /* .. or with no itemidlist at all. */
963 dwFlags = 0xffffffff;
964 hr = IShellFolder_GetAttributesOf(psfDesktop, 0, NULL, &dwFlags);
965 ok (hr == S_OK, "Desktop->GetAttributesOf(NULL) failed! hr = %08x\n", hr);
966 ok (dwFlags == desktopFlags, "Wrong Desktop attributes: %08x\n", dwFlags);
967
968 /* Testing the attributes of the MyComputer shellfolder */
969 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, wszMyComputer, NULL, &pidlMyComputer, NULL);
970 ok (hr == S_OK, "Desktop's ParseDisplayName failed to parse MyComputer's CLSID! hr = %08x\n", hr);
971 if (hr != S_OK) {
972 IShellFolder_Release(psfDesktop);
973 return;
974 }
975
976 /* Windows sets the SFGAO_CANLINK flag, when MyComputer is queried via the Desktop
977 * folder object. It doesn't do this, if MyComputer is queried directly (see below).
978 */
979 dwFlags = 0xffffffff;
980 hr = IShellFolder_GetAttributesOf(psfDesktop, 1, (LPCITEMIDLIST*)&pidlMyComputer, &dwFlags);
981 ok (hr == S_OK, "Desktop->GetAttributesOf(MyComputer) failed! hr = %08x\n", hr);
983 ok (dwFlags == (myComputerFlags | SFGAO_CANLINK), "Wrong MyComputer attributes: %08x\n", dwFlags);
984
985 hr = IShellFolder_BindToObject(psfDesktop, pidlMyComputer, NULL, &IID_IShellFolder, (LPVOID*)&psfMyComputer);
986 ok (hr == S_OK, "Desktop failed to bind to MyComputer object! hr = %08x\n", hr);
987 IShellFolder_Release(psfDesktop);
988 IMalloc_Free(ppM, pidlMyComputer);
989 if (hr != S_OK) return;
990
991 hr = IShellFolder_GetAttributesOf(psfMyComputer, 1, &pidlEmpty, &dwFlags);
993 ok (hr == E_INVALIDARG, "MyComputer->GetAttributesOf(empty pidl) should fail! hr = %08x\n", hr);
994
995 dwFlags = 0xffffffff;
996 hr = IShellFolder_GetAttributesOf(psfMyComputer, 0, NULL, &dwFlags);
997 ok (hr == S_OK, "MyComputer->GetAttributesOf(NULL) failed! hr = %08x\n", hr);
999 ok (dwFlags == myComputerFlags, "Wrong MyComputer attributes: %08x\n", dwFlags);
1000
1001 IShellFolder_Release(psfMyComputer);
1002
1003 GetCurrentDirectoryA(MAX_PATH, cCurrDirA);
1004 len = lstrlenA(cCurrDirA);
1005
1006 if (len == 0) {
1007 win_skip("GetCurrentDirectoryA returned empty string. Skipping test_GetAttributesOf\n");
1008 return;
1009 }
1010 if (len > 3 && cCurrDirA[len-1] == '\\')
1011 cCurrDirA[len-1] = 0;
1012
1013 /* create test directory */
1015
1016 MultiByteToWideChar(CP_ACP, 0, cCurrDirA, -1, cCurrDirW, MAX_PATH);
1017
1018 hr = SHGetDesktopFolder(&IDesktopFolder);
1019 ok(hr == S_OK, "SHGetDesktopfolder failed %08x\n", hr);
1020
1021 hr = IShellFolder_ParseDisplayName(IDesktopFolder, NULL, NULL, cCurrDirW, NULL, &newPIDL, 0);
1022 ok(hr == S_OK, "ParseDisplayName failed %08x\n", hr);
1023
1024 hr = IShellFolder_BindToObject(IDesktopFolder, newPIDL, NULL, (REFIID)&IID_IShellFolder, (LPVOID *)&testIShellFolder);
1025 ok(hr == S_OK, "BindToObject failed %08x\n", hr);
1026
1027 IMalloc_Free(ppM, newPIDL);
1028
1029 /* get relative PIDL */
1030 hr = IShellFolder_ParseDisplayName(testIShellFolder, NULL, NULL, cTestDirW, NULL, &newPIDL, 0);
1031 ok(hr == S_OK, "ParseDisplayName failed %08x\n", hr);
1032
1033 /* test the shell attributes of the test directory using the relative PIDL */
1034 dwFlags = SFGAO_FOLDER;
1035 hr = IShellFolder_GetAttributesOf(testIShellFolder, 1, (LPCITEMIDLIST*)&newPIDL, &dwFlags);
1036 ok (hr == S_OK, "Desktop->GetAttributesOf() failed! hr = %08x\n", hr);
1037 ok ((dwFlags&SFGAO_FOLDER), "Wrong directory attribute for relative PIDL: %08x\n", dwFlags);
1038
1039 /* free memory */
1040 IMalloc_Free(ppM, newPIDL);
1041
1042 /* append testdirectory name to path */
1043 if (cCurrDirA[len-1] == '\\')
1044 cCurrDirA[len-1] = 0;
1045 lstrcatA(cCurrDirA, "\\testdir");
1046 MultiByteToWideChar(CP_ACP, 0, cCurrDirA, -1, cCurrDirW, MAX_PATH);
1047
1048 hr = IShellFolder_ParseDisplayName(IDesktopFolder, NULL, NULL, cCurrDirW, NULL, &newPIDL, 0);
1049 ok(hr == S_OK, "ParseDisplayName failed %08x\n", hr);
1050
1051 /* test the shell attributes of the test directory using the absolute PIDL */
1052 dwFlags = SFGAO_FOLDER;
1053 hr = IShellFolder_GetAttributesOf(IDesktopFolder, 1, (LPCITEMIDLIST*)&newPIDL, &dwFlags);
1054 ok (hr == S_OK, "Desktop->GetAttributesOf() failed! hr = %08x\n", hr);
1055 ok ((dwFlags&SFGAO_FOLDER), "Wrong directory attribute for absolute PIDL: %08x\n", dwFlags);
1056
1057 /* free memory */
1058 IMalloc_Free(ppM, newPIDL);
1059
1060 IShellFolder_Release(testIShellFolder);
1061
1062 Cleanup();
1063
1064 IShellFolder_Release(IDesktopFolder);
1065}
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
static IBindCtx void **static IBindCtx void **static void **static IShellFolder LPCITEMIDLIST
Definition: shlfolder.c:53

Referenced by START_TEST().

◆ test_GetDefaultColumn()

static void test_GetDefaultColumn ( void  )
static

Definition at line 5161 of file shlfolder.c.

5162{
5163 static const CLSID *folders[] =
5164 {
5165 &CLSID_MyComputer,
5166 &CLSID_MyDocuments,
5167 &CLSID_ControlPanel,
5168 &CLSID_NetworkPlaces,
5169 &CLSID_Printers,
5170 &CLSID_RecycleBin,
5171 &CLSID_ShellDesktop,
5172 };
5173 HRESULT hr;
5174 int i;
5175
5177
5178 for (i = 0; i < ARRAY_SIZE(folders); i++)
5179 {
5182
5183 hr = CoCreateInstance(folders[i], NULL, CLSCTX_INPROC_SERVER, &IID_IShellFolder2, (void **)&folder);
5184 if (hr != S_OK)
5185 {
5186 win_skip("Failed to create folder %s, hr %#x.\n", wine_dbgstr_guid(folders[i]), hr);
5187 continue;
5188 }
5189
5190 hr = IShellFolder2_GetDefaultColumn(folder, 0, NULL, NULL);
5191 ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr);
5192
5193 sort = display = 123;
5194 hr = IShellFolder2_GetDefaultColumn(folder, 0, &sort, &display);
5195 ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr);
5196 ok(sort == 123 && display == 123, "Unexpected default column.\n");
5197
5198 display = 123;
5199 hr = IShellFolder2_GetDefaultColumn(folder, 0, NULL, &display);
5200 ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr);
5201 ok(display == 123, "Unexpected default column.\n");
5202
5203 sort = 123;
5204 hr = IShellFolder2_GetDefaultColumn(folder, 0, &sort, NULL);
5205 ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr);
5206 ok(sort == 123, "Unexpected default column.\n");
5207
5208 IShellFolder2_Release(folder);
5209 }
5210
5212}
#define ARRAY_SIZE(A)
Definition: main.h:20
static struct @506 sort
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
Definition: compobj.c:1964
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
Definition: compobj.c:2067
Definition: fci.c:116
int * display
Definition: x11stubs.c:12

Referenced by START_TEST().

◆ test_GetDefaultSearchGUID()

static void test_GetDefaultSearchGUID ( void  )
static

Definition at line 5214 of file shlfolder.c.

5215{
5216 static const CLSID *folders[] =
5217 {
5218 &CLSID_MyComputer,
5219 &CLSID_MyDocuments,
5220 &CLSID_ControlPanel,
5221 &CLSID_NetworkPlaces,
5222 &CLSID_Printers,
5223 &CLSID_RecycleBin,
5224 &CLSID_ShellDesktop,
5225 };
5226 HRESULT hr;
5227 int i;
5228
5230
5231 for (i = 0; i < ARRAY_SIZE(folders); i++)
5232 {
5234 GUID guid;
5235
5236 hr = CoCreateInstance(folders[i], NULL, CLSCTX_INPROC_SERVER, &IID_IShellFolder2, (void **)&folder);
5237 if (hr != S_OK)
5238 {
5239 win_skip("Failed to create folder %s, hr %#x.\n", wine_dbgstr_guid(folders[i]), hr);
5240 continue;
5241 }
5242
5243 if (0)
5244 {
5245 /* crashes on XP */
5246 hr = IShellFolder2_GetDefaultSearchGUID(folder, NULL);
5247 ok(hr == E_NOTIMPL, "Unexpected hr %#x.\n", hr);
5248 }
5249
5250 memcpy(&guid, &CLSID_MyComputer, sizeof(guid));
5251 hr = IShellFolder2_GetDefaultSearchGUID(folder, &guid);
5252 ok(hr == E_NOTIMPL || broken(hr == S_OK) /* Method was last supported on XP */, "Unexpected hr %#x.\n", hr);
5253 if (hr == E_NOTIMPL)
5254 ok(IsEqualGUID(&guid, &CLSID_MyComputer), "Unexpected guid %s.\n", wine_dbgstr_guid(&guid));
5255
5256 IShellFolder2_Release(folder);
5257 }
5258
5260}
GUID guid
Definition: version.c:147
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

Referenced by START_TEST().

◆ test_GetDisplayName()

static void test_GetDisplayName ( void  )
static

Definition at line 640 of file shlfolder.c.

641{
642 BOOL result;
643 HRESULT hr;
644 HANDLE hTestFile;
645 WCHAR wszTestFile[MAX_PATH], wszTestFile2[MAX_PATH];
646 char szTestFile[MAX_PATH], szTestDir[MAX_PATH];
647 DWORD attr;
648 STRRET strret;
649 LPSHELLFOLDER psfDesktop, psfPersonal;
650 IUnknown *psfFile;
651 SHITEMID emptyitem = { 0, { 0 } };
652 LPITEMIDLIST pidlTestFile, pidlEmpty = (LPITEMIDLIST)&emptyitem;
653 LPCITEMIDLIST pidlLast;
654 static const CHAR szFileName[] = "winetest.foo";
655 static const WCHAR wszFileName[] = { 'w','i','n','e','t','e','s','t','.','f','o','o',0 };
656 static const WCHAR wszDirName[] = { 'w','i','n','e','t','e','s','t',0 };
657
658 /* It's ok to use this fixed path. Call will fail anyway. */
659 WCHAR wszAbsoluteFilename[] = { 'C',':','\\','w','i','n','e','t','e','s','t', 0 };
660 LPITEMIDLIST pidlNew;
661
662 /* I'm trying to figure if there is a functional difference between calling
663 * SHGetPathFromIDListW and calling GetDisplayNameOf(SHGDN_FORPARSING) after
664 * binding to the shellfolder. One thing I thought of was that perhaps
665 * SHGetPathFromIDListW would be able to get the path to a file, which does
666 * not exist anymore, while the other method wouldn't. It turns out there's
667 * no functional difference in this respect.
668 */
669
670 /* First creating a directory in MyDocuments and a file in this directory. */
672 ok(result, "SHGetSpecialFolderPathA failed! Last error: %u\n", GetLastError());
673 if (!result) return;
674
675 /* Use ANSI file functions so this works on Windows 9x */
676 lstrcatA(szTestDir, "\\winetest");
677 CreateDirectoryA(szTestDir, NULL);
678 attr=GetFileAttributesA(szTestDir);
680 {
681 ok(0, "unable to create the '%s' directory\n", szTestDir);
682 return;
683 }
684
685 lstrcpyA(szTestFile, szTestDir);
686 lstrcatA(szTestFile, "\\");
687 lstrcatA(szTestFile, szFileName);
688 hTestFile = CreateFileA(szTestFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
689 ok((hTestFile != INVALID_HANDLE_VALUE), "CreateFileA failed! Last error: %u\n", GetLastError());
690 if (hTestFile == INVALID_HANDLE_VALUE) return;
691 CloseHandle(hTestFile);
692
693 /* Getting an itemidlist for the file. */
694 hr = SHGetDesktopFolder(&psfDesktop);
695 ok(hr == S_OK, "SHGetDesktopFolder failed! hr = %08x\n", hr);
696 if (hr != S_OK) return;
697
698 MultiByteToWideChar(CP_ACP, 0, szTestFile, -1, wszTestFile, MAX_PATH);
699
700 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, wszTestFile, NULL, &pidlTestFile, NULL);
701 ok(hr == S_OK, "Desktop->ParseDisplayName failed! hr = %08x\n", hr);
702 if (hr != S_OK) {
703 IShellFolder_Release(psfDesktop);
704 return;
705 }
706
707 pidlLast = ILFindLastID(pidlTestFile);
708 ok(pidlLast->mkid.cb >= 76, "Expected pidl length of at least 76, got %d.\n", pidlLast->mkid.cb);
709 if (pidlLast->mkid.cb >= 28) {
710 ok(!lstrcmpA((CHAR*)&pidlLast->mkid.abID[12], szFileName),
711 "Filename should be stored as ansi-string at this position!\n");
712 }
713 /* WinXP and up store the filenames as both ANSI and UNICODE in the pidls */
714 if (pidlLast->mkid.cb >= 76) {
715 ok(!lstrcmpW((WCHAR*)&pidlLast->mkid.abID[46], wszFileName) ||
716 (pidlLast->mkid.cb >= 94 && !lstrcmpW((WCHAR*)&pidlLast->mkid.abID[64], wszFileName)) || /* Vista */
717 (pidlLast->mkid.cb >= 98 && !lstrcmpW((WCHAR*)&pidlLast->mkid.abID[68], wszFileName)) || /* Win7 */
718 (pidlLast->mkid.cb >= 102 && !lstrcmpW((WCHAR*)&pidlLast->mkid.abID[72], wszFileName)), /* Win8 */
719 "Filename should be stored as wchar-string at this position!\n");
720 }
721
722 /* It seems as if we cannot bind to regular files on windows, but only directories.
723 */
724 hr = IShellFolder_BindToObject(psfDesktop, pidlTestFile, NULL, &IID_IUnknown, (VOID**)&psfFile);
726 hr == E_NOTIMPL, /* Vista */
727 "hr = %08x\n", hr);
728 if (hr == S_OK) {
729 IUnknown_Release(psfFile);
730 }
731
732 /* Some tests for IShellFolder::SetNameOf */
733 hr = SHBindToParent(pidlTestFile, &IID_IShellFolder, (void **)&psfPersonal, &pidlLast);
734 ok(hr == S_OK, "SHBindToParent failed! hr = %08x\n", hr);
735
736 /* The pidl returned through the last parameter of SetNameOf is a simple one. */
737 hr = IShellFolder_SetNameOf(psfPersonal, NULL, pidlLast, wszDirName, SHGDN_NORMAL, &pidlNew);
738 ok (hr == S_OK, "SetNameOf failed! hr = %08x\n", hr);
739
740 ok (((ITEMIDLIST *)((BYTE *)pidlNew + pidlNew->mkid.cb))->mkid.cb == 0,
741 "pidl returned from SetNameOf should be simple!\n");
742
743 /* Passing an absolute path to SetNameOf fails. The HRESULT code indicates that SetNameOf
744 * is implemented on top of SHFileOperation in WinXP. */
745 hr = IShellFolder_SetNameOf(psfPersonal, NULL, pidlNew, wszAbsoluteFilename, SHGDN_FORPARSING, NULL);
746 ok (hr == HRESULT_FROM_WIN32(ERROR_CANCELLED), "SetNameOf succeeded! hr = %08x\n", hr);
747
748 /* Rename the file back to its original name. SetNameOf ignores the fact, that the
749 * SHGDN flags specify an absolute path. */
750 hr = IShellFolder_SetNameOf(psfPersonal, NULL, pidlNew, wszFileName, SHGDN_FORPARSING, NULL);
751 ok (hr == S_OK, "SetNameOf failed! hr = %08x\n", hr);
752
753 ILFree(pidlNew);
754 IShellFolder_Release(psfPersonal);
755
756 /* Deleting the file and the directory */
757 DeleteFileA(szTestFile);
758 RemoveDirectoryA(szTestDir);
759
760 /* SHGetPathFromIDListW still works, although the file is not present anymore. */
761 result = SHGetPathFromIDListW(pidlTestFile, wszTestFile2);
762 ok (result, "SHGetPathFromIDListW failed! Last error: %u\n", GetLastError());
763 ok (!lstrcmpiW(wszTestFile, wszTestFile2), "SHGetPathFromIDListW returns incorrect path!\n");
764
765 /* SHBindToParent fails, if called with a NULL PIDL. */
766 hr = SHBindToParent(NULL, &IID_IShellFolder, (void **)&psfPersonal, &pidlLast);
767 ok (hr == E_INVALIDARG || broken(hr == E_OUTOFMEMORY) /* XP */,
768 "SHBindToParent(NULL) should fail! hr = %08x\n", hr);
769
770 /* But it succeeds with an empty PIDL. */
771 hr = SHBindToParent(pidlEmpty, &IID_IShellFolder, (void **)&psfPersonal, &pidlLast);
772 ok (hr == S_OK, "SHBindToParent(empty PIDL) should succeed! hr = %08x\n", hr);
773 ok (pidlLast == pidlEmpty, "The last element of an empty PIDL should be the PIDL itself!\n");
774 if (hr == S_OK)
775 IShellFolder_Release(psfPersonal);
776
777 /* Binding to the folder and querying the display name of the file also works. */
778 hr = SHBindToParent(pidlTestFile, &IID_IShellFolder, (void **)&psfPersonal, &pidlLast);
779 ok (hr == S_OK, "SHBindToParent failed! hr = %08x\n", hr);
780 if (hr != S_OK) {
781 IShellFolder_Release(psfDesktop);
782 return;
783 }
784
785 /* This test shows that Windows doesn't allocate a new pidlLast, but returns a pointer into
786 * pidlTestFile (In accordance with MSDN). */
787 ok (ILFindLastID(pidlTestFile) == pidlLast,
788 "SHBindToParent doesn't return the last id of the pidl param!\n");
789
790 hr = IShellFolder_GetDisplayNameOf(psfPersonal, pidlLast, SHGDN_FORPARSING, &strret);
791 ok (hr == S_OK, "Personal->GetDisplayNameOf failed! hr = %08x\n", hr);
792 if (hr != S_OK) {
793 IShellFolder_Release(psfDesktop);
794 IShellFolder_Release(psfPersonal);
795 return;
796 }
797
798 hr = StrRetToBufW(&strret, pidlLast, wszTestFile2, MAX_PATH);
799 ok (hr == S_OK, "StrRetToBufW failed! hr = %08x\n", hr);
800 ok (!lstrcmpiW(wszTestFile, wszTestFile2), "GetDisplayNameOf returns incorrect path!\n");
801
802 ILFree(pidlTestFile);
803 IShellFolder_Release(psfDesktop);
804 IShellFolder_Release(psfPersonal);
805}
static WCHAR wszFileName[MAX_PATH]
Definition: wordpad.c:71
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName)
Definition: fileinfo.c:636
#define FILE_ATTRIBUTE_DIRECTORY
Definition: nt_native.h:705
BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST pidl, LPWSTR pszPath)
Definition: pidl.c:1490
#define CSIDL_PERSONAL
Definition: shlobj.h:2184
Definition: cookie.c:202
#define ERROR_CANCELLED
Definition: winerror.h:1055
unsigned char BYTE
Definition: xxhash.c:193

Referenced by START_TEST().

◆ test_GetUIObject()

static void test_GetUIObject ( void  )
static

Definition at line 4480 of file shlfolder.c.

4481{
4482 IShellFolder *psf_desktop;
4483 IContextMenu *pcm;
4484 LPITEMIDLIST pidl;
4485 HRESULT hr;
4487 const WCHAR filename[] =
4488 {'\\','t','e','s','t','d','i','r','\\','t','e','s','t','1','.','t','x','t',0};
4489 LPCITEMIDLIST pidl_child;
4490 IShellFolder *psf;
4491
4493 if (!path[0])
4494 {
4495 skip("GetCurrentDirectoryW returned an empty string.\n");
4496 return;
4497 }
4499 SHGetDesktopFolder(&psf_desktop);
4500
4502
4503 hr = IShellFolder_ParseDisplayName(psf_desktop, NULL, NULL, path, NULL, &pidl, 0);
4504 ok(hr == S_OK, "Got 0x%08x\n", hr);
4505
4506 hr = SHBindToParent(pidl, &IID_IShellFolder, (void **)&psf, &pidl_child);
4507 ok(hr == S_OK, "Failed to bind to folder, hr %#x.\n", hr);
4508
4509 /* Item menu */
4510 hr = IShellFolder_GetUIObjectOf(psf, NULL, 1, &pidl_child, &IID_IContextMenu, NULL, (void **)&pcm);
4511 ok(hr == S_OK, "GetUIObjectOf() failed, hr %#x.\n", hr);
4512 test_contextmenu(pcm, FALSE);
4513 IContextMenu_Release(pcm);
4514
4515 /* Background menu */
4516 hr = IShellFolder_GetUIObjectOf(psf_desktop, NULL, 0, NULL, &IID_IContextMenu, NULL, (void **)&pcm);
4517 ok(hr == S_OK, "GetUIObjectOf() failed, hr %#x.\n", hr);
4518 test_contextmenu(pcm, TRUE);
4519 IContextMenu_Release(pcm);
4520
4521 IShellFolder_Release(psf);
4522 ILFree(pidl);
4523
4524 IShellFolder_Release(psf_desktop);
4525 Cleanup();
4526}
#define GetCurrentDirectoryW(x, y)
Definition: compat.h:756
static void test_contextmenu(void)
Definition: edit.c:2586

Referenced by START_TEST().

◆ test_ITEMIDLIST_format()

static void test_ITEMIDLIST_format ( void  )
static

Definition at line 1564 of file shlfolder.c.

1564 {
1565 WCHAR wszPersonal[MAX_PATH];
1566 LPSHELLFOLDER psfDesktop, psfPersonal;
1567 LPITEMIDLIST pidlPersonal, pidlFile;
1568 HANDLE hFile;
1569 HRESULT hr;
1570 BOOL bResult;
1571 WCHAR wszFile[3][17] = { { 'e','v','e','n','_',0 }, { 'o','d','d','_',0 },
1572 { 'l','o','n','g','e','r','_','t','h','a','n','.','8','_','3',0 } };
1573 int i;
1574
1575 bResult = SHGetSpecialFolderPathW(NULL, wszPersonal, CSIDL_PERSONAL, FALSE);
1576 ok(bResult, "SHGetSpecialFolderPathW failed! Last error: %u\n", GetLastError());
1577 if (!bResult) return;
1578
1579 SetLastError(0xdeadbeef);
1580 bResult = SetCurrentDirectoryW(wszPersonal);
1581 if (!bResult && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) {
1582 win_skip("Most W-calls are not implemented\n");
1583 return;
1584 }
1585 ok(bResult, "SetCurrentDirectory failed! Last error: %u\n", GetLastError());
1586 if (!bResult) return;
1587
1588 hr = SHGetDesktopFolder(&psfDesktop);
1589 ok(hr == S_OK, "SHGetDesktopFolder failed! hr: %08x\n", hr);
1590 if (hr != S_OK) return;
1591
1592 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, wszPersonal, NULL, &pidlPersonal, NULL);
1593 ok(hr == S_OK, "psfDesktop->ParseDisplayName failed! hr = %08x\n", hr);
1594 if (hr != S_OK) {
1595 IShellFolder_Release(psfDesktop);
1596 return;
1597 }
1598
1599 hr = IShellFolder_BindToObject(psfDesktop, pidlPersonal, NULL, &IID_IShellFolder,
1600 (LPVOID*)&psfPersonal);
1601 IShellFolder_Release(psfDesktop);
1602 ILFree(pidlPersonal);
1603 ok(hr == S_OK, "psfDesktop->BindToObject failed! hr = %08x\n", hr);
1604 if (hr != S_OK) return;
1605
1606 for (i=0; i<3; i++) {
1607 CHAR szFile[MAX_PATH];
1608 struct FileStructA *pFileStructA;
1609 WORD cbOffset;
1610
1611 WideCharToMultiByte(CP_ACP, 0, wszFile[i], -1, szFile, MAX_PATH, NULL, NULL);
1612
1614 ok(hFile != INVALID_HANDLE_VALUE, "CreateFile failed! (%u)\n", GetLastError());
1615 if (hFile == INVALID_HANDLE_VALUE) {
1616 IShellFolder_Release(psfPersonal);
1617 return;
1618 }
1620
1621 hr = IShellFolder_ParseDisplayName(psfPersonal, NULL, NULL, wszFile[i], NULL, &pidlFile, NULL);
1623 ok(hr == S_OK, "psfPersonal->ParseDisplayName failed! hr: %08x\n", hr);
1624 if (hr != S_OK) {
1625 IShellFolder_Release(psfPersonal);
1626 return;
1627 }
1628
1629 pFileStructA = (struct FileStructA *)pidlFile->mkid.abID;
1630 ok(pFileStructA->type == 0x32, "PIDLTYPE should be 0x32!\n");
1631 ok(pFileStructA->dummy == 0x00, "Dummy Byte should be 0x00!\n");
1632 ok(pFileStructA->dwFileSize == 0, "Filesize should be zero!\n");
1633
1634 if (i < 2) /* First two file names are already in valid 8.3 format */
1635 ok(!strcmp(szFile, (CHAR*)&pidlFile->mkid.abID[12]), "Wrong file name!\n");
1636 else
1637 /* WinXP stores a derived 8.3 dos name (LONGER~1.8_3) here. We probably
1638 * can't implement this correctly, since unix filesystems don't support
1639 * this nasty short/long filename stuff. So we'll probably stay with our
1640 * current habit of storing the long filename here, which seems to work
1641 * just fine. */
1642 todo_wine
1643 ok(pidlFile->mkid.abID[18] == '~', "Should be derived 8.3 name!\n");
1644
1645 if (i == 0) /* First file name has an even number of chars. No need for alignment. */
1646 ok(pidlFile->mkid.abID[12 + strlen(szFile) + 1] != '\0',
1647 "Alignment byte, where there shouldn't be!\n");
1648
1649 if (i == 1) /* Second file name has an uneven number of chars => alignment byte */
1650 ok(pidlFile->mkid.abID[12 + strlen(szFile) + 1] == '\0',
1651 "There should be an alignment byte, but isn't!\n");
1652
1653 /* The offset of the FileStructW member is stored as a WORD at the end of the pidl. */
1654 cbOffset = *(WORD*)(((LPBYTE)pidlFile)+pidlFile->mkid.cb-sizeof(WORD));
1655 ok ((cbOffset >= sizeof(struct FileStructA) &&
1656 cbOffset <= pidlFile->mkid.cb - sizeof(struct FileStructW)),
1657 "Wrong offset value (%d) stored at the end of the PIDL\n", cbOffset);
1658
1659 if (cbOffset >= sizeof(struct FileStructA) &&
1660 cbOffset <= pidlFile->mkid.cb - sizeof(struct FileStructW))
1661 {
1662 struct FileStructW *pFileStructW = (struct FileStructW *)(((LPBYTE)pidlFile)+cbOffset);
1663 WCHAR *name = pFileStructW->wszName;
1664
1665 ok(pidlFile->mkid.cb == cbOffset + pFileStructW->cbLen,
1666 "FileStructW's offset and length should add up to the PIDL's length!\n");
1667
1668 if (pidlFile->mkid.cb == cbOffset + pFileStructW->cbLen) {
1669 /* Since we just created the file, time of creation,
1670 * time of last access and time of last write access just be the same.
1671 * These tests seem to fail sometimes (on WinXP), if the test is run again shortly
1672 * after the first run. I do remember something with NTFS keeping the creation time
1673 * if a file is deleted and then created again within a couple of seconds or so.
1674 * Might be the reason. */
1675 ok (pFileStructA->uFileDate == pFileStructW->uDate &&
1676 pFileStructA->uFileTime == pFileStructW->uTime,
1677 "Last write time should match creation time!\n");
1678
1679 /* On FAT filesystems the last access time is midnight
1680 local time, so the values of uDate2 and uTime2 will
1681 depend on the local timezone. If the times are exactly
1682 equal then the dates should be identical for both FAT
1683 and NTFS as no timezone is more than 1 day away from UTC.
1684 */
1685 if (pFileStructA->uFileTime == pFileStructW->uTime2)
1686 {
1687 ok (pFileStructA->uFileDate == pFileStructW->uDate2,
1688 "Last write date and time should match last access date and time!\n");
1689 }
1690 else
1691 {
1692 /* Filesystem may be FAT. Check date within 1 day
1693 and seconds are zero. */
1694 trace ("Filesystem may be FAT. Performing less strict atime test.\n");
1695 ok ((pFileStructW->uTime2 & 0x1F) == 0,
1696 "Last access time on FAT filesystems should have zero seconds.\n");
1697 /* TODO: Perform check for date being within one day.*/
1698 }
1699
1700 ok (!lstrcmpW(wszFile[i], name) ||
1701 !lstrcmpW(wszFile[i], name + 9) || /* Vista */
1702 !lstrcmpW(wszFile[i], name + 11) || /* Win7 */
1703 !lstrcmpW(wszFile[i], name + 13), /* Win8 */
1704 "The filename should be stored in unicode at this position!\n");
1705 }
1706 }
1707
1708 ILFree(pidlFile);
1709 }
1710
1711 IShellFolder_Release(psfPersonal);
1712}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:102
#define CreateFileW
Definition: compat.h:741
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
Definition: delete.c:39
BOOL WINAPI SetCurrentDirectoryW(IN LPCWSTR lpPathName)
Definition: path.c:2249
#define CREATE_NEW
Definition: disk.h:69
#define FILE_FLAG_WRITE_THROUGH
Definition: disk.h:47
_In_ HANDLE hFile
Definition: mswsock.h:90
DWORD dwFileSize
Definition: shlfolder.c:1542
WORD uFileDate
Definition: shlfolder.c:1543
WORD uFileTime
Definition: shlfolder.c:1544
WORD cbOffset
Definition: shlfolder.c:1559
WCHAR wszName[1]
Definition: shlfolder.c:1557
static const WCHAR wszFile[]
Definition: urlmon_main.c:386

Referenced by START_TEST().

◆ test_LocalizedNames()

static void test_LocalizedNames ( void  )
static

Definition at line 1898 of file shlfolder.c.

1899{
1900 static char cCurrDirA[MAX_PATH];
1901 WCHAR cCurrDirW[MAX_PATH], tempbufW[25];
1902 IShellFolder *IDesktopFolder, *testIShellFolder;
1903 ITEMIDLIST *newPIDL;
1904 int len;
1905 HRESULT hr;
1906 static char resourcefile[MAX_PATH];
1907 DWORD res;
1908 HANDLE file;
1909 STRRET strret;
1910 BOOL ret;
1911
1912 static const char desktopini_contents1[] =
1913 "[.ShellClassInfo]\r\n"
1914 "LocalizedResourceName=@";
1915 static const char desktopini_contents2[] =
1916 ",-1\r\n";
1917 static WCHAR foldernameW[] = {'t','e','s','t','f','o','l','d','e','r',0};
1918 static const WCHAR folderdisplayW[] = {'F','o','l','d','e','r',' ','N','a','m','e',' ','R','e','s','o','u','r','c','e',0};
1919
1920 /* create folder with desktop.ini and localized name in GetModuleFileNameA(NULL) */
1921 CreateDirectoryA(".\\testfolder", NULL);
1922
1923 SetFileAttributesA(".\\testfolder", GetFileAttributesA(".\\testfolder")|FILE_ATTRIBUTE_SYSTEM);
1924
1925 GetModuleFileNameA(NULL, resourcefile, MAX_PATH);
1926
1927 file = CreateFileA(".\\testfolder\\desktop.ini", GENERIC_WRITE, 0, NULL,
1929 ok(file != INVALID_HANDLE_VALUE, "CreateFileA failed %i\n", GetLastError());
1930 ret = WriteFile(file, desktopini_contents1, strlen(desktopini_contents1), &res, NULL) &&
1931 WriteFile(file, resourcefile, strlen(resourcefile), &res, NULL) &&
1932 WriteFile(file, desktopini_contents2, strlen(desktopini_contents2), &res, NULL);
1933 ok(ret, "WriteFile failed %i\n", GetLastError());
1935
1936 /* get IShellFolder for parent */
1937 GetCurrentDirectoryA(MAX_PATH, cCurrDirA);
1938 len = lstrlenA(cCurrDirA);
1939
1940 if (len == 0) {
1941 win_skip("GetCurrentDirectoryA returned empty string. Skipping test_LocalizedNames\n");
1942 goto cleanup;
1943 }
1944 if(cCurrDirA[len-1] == '\\')
1945 cCurrDirA[len-1] = 0;
1946
1947 MultiByteToWideChar(CP_ACP, 0, cCurrDirA, -1, cCurrDirW, MAX_PATH);
1948
1949 hr = SHGetDesktopFolder(&IDesktopFolder);
1950 ok(hr == S_OK, "SHGetDesktopfolder failed %08x\n", hr);
1951
1952 hr = IShellFolder_ParseDisplayName(IDesktopFolder, NULL, NULL, cCurrDirW, NULL, &newPIDL, 0);
1953 ok(hr == S_OK, "ParseDisplayName failed %08x\n", hr);
1954
1955 hr = IShellFolder_BindToObject(IDesktopFolder, newPIDL, NULL, (REFIID)&IID_IShellFolder, (LPVOID *)&testIShellFolder);
1956 ok(hr == S_OK, "BindToObject failed %08x\n", hr);
1957
1958 IMalloc_Free(ppM, newPIDL);
1959
1960 /* windows reads the display name from the resource */
1961 hr = IShellFolder_ParseDisplayName(testIShellFolder, NULL, NULL, foldernameW, NULL, &newPIDL, 0);
1962 ok(hr == S_OK, "ParseDisplayName failed %08x\n", hr);
1963
1964 hr = IShellFolder_GetDisplayNameOf(testIShellFolder, newPIDL, SHGDN_INFOLDER, &strret);
1965 ok(hr == S_OK, "GetDisplayNameOf failed %08x\n", hr);
1966
1967 hr = StrRetToBufW(&strret, newPIDL, tempbufW, ARRAY_SIZE(tempbufW));
1968 ok (hr == S_OK, "StrRetToBufW failed! hr = %08x\n", hr);
1969 todo_wine
1970 ok (!lstrcmpiW(tempbufW, folderdisplayW), "GetDisplayNameOf returned %s\n", wine_dbgstr_w(tempbufW));
1971
1972 /* editing name is also read from the resource */
1973 hr = IShellFolder_GetDisplayNameOf(testIShellFolder, newPIDL, SHGDN_INFOLDER|SHGDN_FOREDITING, &strret);
1974 ok(hr == S_OK, "GetDisplayNameOf failed %08x\n", hr);
1975
1976 hr = StrRetToBufW(&strret, newPIDL, tempbufW, ARRAY_SIZE(tempbufW));
1977 ok (hr == S_OK, "StrRetToBufW failed! hr = %08x\n", hr);
1978 todo_wine
1979 ok (!lstrcmpiW(tempbufW, folderdisplayW), "GetDisplayNameOf returned %s\n", wine_dbgstr_w(tempbufW));
1980
1981 /* parsing name is unchanged */
1982 hr = IShellFolder_GetDisplayNameOf(testIShellFolder, newPIDL, SHGDN_INFOLDER|SHGDN_FORPARSING, &strret);
1983 ok(hr == S_OK, "GetDisplayNameOf failed %08x\n", hr);
1984
1985 hr = StrRetToBufW(&strret, newPIDL, tempbufW, ARRAY_SIZE(tempbufW));
1986 ok (hr == S_OK, "StrRetToBufW failed! hr = %08x\n", hr);
1987 ok (!lstrcmpiW(tempbufW, foldernameW), "GetDisplayNameOf returned %s\n", wine_dbgstr_w(tempbufW));
1988
1989 IShellFolder_Release(IDesktopFolder);
1990 IShellFolder_Release(testIShellFolder);
1991
1992 IMalloc_Free(ppM, newPIDL);
1993
1994cleanup:
1995 DeleteFileA(".\\testfolder\\desktop.ini");
1996 SetFileAttributesA(".\\testfolder", GetFileAttributesA(".\\testfolder")&~FILE_ATTRIBUTE_SYSTEM);
1997 RemoveDirectoryA(".\\testfolder");
1998}
#define FILE_ATTRIBUTE_NORMAL
Definition: compat.h:137
static void cleanup(void)
Definition: main.c:1335
BOOL WINAPI SetFileAttributesA(LPCSTR lpFileName, DWORD dwFileAttributes)
Definition: fileinfo.c:776
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
Definition: loader.c:539
#define FILE_ATTRIBUTE_SYSTEM
Definition: nt_native.h:704

Referenced by START_TEST().

◆ test_ParseDisplayName()

static void test_ParseDisplayName ( void  )
static

Definition at line 207 of file shlfolder.c.

208{
209 static WCHAR testdirW[] = {'p','a','r','s','e','t','e','s','t',0};
210 static WCHAR backslashW[] = {'\\',0};
211 WCHAR buffer[MAX_PATH], buffer2[MAX_PATH];
212 IShellFolder *desktop;
213 ITEMIDLIST *pidl;
214 HRESULT hr;
215 BOOL bRes;
216 int i;
217
218 hr = SHGetDesktopFolder(&desktop);
219 ok(hr == S_OK, "Expected SHGetDesktopFolder to return S_OK, got 0x%08x\n", hr);
220
221 hr = IShellFolder_ParseDisplayName(desktop, NULL, NULL, NULL, NULL, &pidl, NULL);
222 ok(hr == E_INVALIDARG, "got %#x\n", hr);
223
224 for (i = 0; i < ARRAY_SIZE(parse_tests); i++)
225 {
228 ok(hr == parse_tests[i].hr, "%s: expected %#x, got %#x\n",
230 if (SUCCEEDED(hr))
231 CoTaskMemFree(pidl);
232 }
233
234 /* I thought that perhaps the DesktopFolder's ParseDisplayName would recognize the
235 * path corresponding to CSIDL_PERSONAL and return a CLSID_MyDocuments PIDL. Turns
236 * out it doesn't. The magic seems to happen in the file dialogs, then. */
237
239 ok(bRes, "SHGetSpecialFolderPath(CSIDL_PERSONAL) failed! %u\n", GetLastError());
240
241 hr = IShellFolder_ParseDisplayName(desktop, NULL, NULL, buffer, NULL, &pidl, 0);
242 ok(hr == S_OK, "DesktopFolder->ParseDisplayName failed. hr = %08x.\n", hr);
243
244 ok(ILFindLastID(pidl)->mkid.abID[0] == 0x31,
245 "Last pidl should be of type PT_FOLDER, but is: %02x\n",
246 ILFindLastID(pidl)->mkid.abID[0]);
247 CoTaskMemFree(pidl);
248
249 /* Relative paths are interpreted relative to the desktop. */
253 CreateDirectoryW(testdirW, NULL);
254
255 hr = IShellFolder_ParseDisplayName(desktop, NULL, NULL, testdirW, NULL, &pidl, NULL);
256 ok(hr == 0x80070002, "got %#x\n", hr);
257
258 RemoveDirectoryW(testdirW);
259
261 ok(hr == S_FALSE, "got %#x\n", hr);
263 CreateDirectoryW(testdirW, NULL);
264
265 hr = IShellFolder_ParseDisplayName(desktop, NULL, NULL, testdirW, NULL, &pidl, NULL);
266 ok(hr == S_OK, "got %#x\n", hr);
267
268 ok(SHGetPathFromIDListW(pidl, buffer2), "SHGetPathFromIDList failed\n");
270 lstrcatW(buffer, testdirW);
271 ok(!lstrcmpW(buffer, buffer2), "expected %s, got %s\n", wine_dbgstr_w(buffer), wine_dbgstr_w(buffer2));
272
273 RemoveDirectoryW(testdirW);
274 CoTaskMemFree(pidl);
275
276 IShellFolder_Release(desktop);
277}
static const WCHAR backslashW[]
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
Definition: path.c:2080
DWORD WINAPI GetLongPathNameW(IN LPCWSTR lpszShortPath, OUT LPWSTR lpszLongPath, IN DWORD cchBuffer)
Definition: path.c:1456
GLuint buffer
Definition: glext.h:5915
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
static struct @1835 parse_tests[]

Referenced by START_TEST().

◆ test_ParseDisplayNamePBC()

static void test_ParseDisplayNamePBC ( void  )
static

Definition at line 4678 of file shlfolder.c.

4679{
4680 WCHAR wFileSystemBindData[] =
4681 {'F','i','l','e',' ','S','y','s','t','e','m',' ','B','i','n','d',' ','D','a','t','a',0};
4682 WCHAR adirW[] = {'C',':','\\','f','s','b','d','d','i','r',0};
4683 WCHAR afileW[] = {'C',':','\\','f','s','b','d','d','i','r','\\','f','i','l','e','.','t','x','t',0};
4684 WCHAR afile2W[] = {'C',':','\\','f','s','b','d','d','i','r','\\','s','\\','f','i','l','e','.','t','x','t',0};
4686
4687 IShellFolder *psf;
4688 IBindCtx *pbc;
4689 HRESULT hres;
4690 ITEMIDLIST *pidl;
4691
4692 /* Check if we support WCHAR functions */
4693 SetLastError(0xdeadbeef);
4694 lstrcmpiW(adirW, adirW);
4696 win_skip("Most W-calls are not implemented\n");
4697 return;
4698 }
4699
4700 hres = SHGetDesktopFolder(&psf);
4701 ok(hres == S_OK, "SHGetDesktopFolder failed: 0x%08x\n", hres);
4702 if(FAILED(hres)){
4703 win_skip("Failed to get IShellFolder, can't run tests\n");
4704 return;
4705 }
4706
4707 /* fails on unknown dir with no IBindCtx */
4708 hres = IShellFolder_ParseDisplayName(psf, NULL, NULL, adirW, NULL, &pidl, NULL);
4709 ok(hres == exp_err, "ParseDisplayName failed with wrong error: 0x%08x\n", hres);
4710 hres = IShellFolder_ParseDisplayName(psf, NULL, NULL, afileW, NULL, &pidl, NULL);
4711 ok(hres == exp_err, "ParseDisplayName failed with wrong error: 0x%08x\n", hres);
4712 hres = IShellFolder_ParseDisplayName(psf, NULL, NULL, afile2W, NULL, &pidl, NULL);
4713 ok(hres == exp_err, "ParseDisplayName failed with wrong error: 0x%08x\n", hres);
4714
4715 /* fails on unknown dir with IBindCtx with no IFileSystemBindData */
4716 hres = CreateBindCtx(0, &pbc);
4717 ok(hres == S_OK, "CreateBindCtx failed: 0x%08x\n", hres);
4718
4719 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, adirW, NULL, &pidl, NULL);
4720 ok(hres == exp_err, "ParseDisplayName failed with wrong error: 0x%08x\n", hres);
4721 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afileW, NULL, &pidl, NULL);
4722 ok(hres == exp_err, "ParseDisplayName failed with wrong error: 0x%08x\n", hres);
4723 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afile2W, NULL, &pidl, NULL);
4724 ok(hres == exp_err, "ParseDisplayName failed with wrong error: 0x%08x\n", hres);
4725
4726 /* unknown dir with IBindCtx with IFileSystemBindData */
4727 hres = IBindCtx_RegisterObjectParam(pbc, wFileSystemBindData, (IUnknown*)&fsbd);
4728 ok(hres == S_OK, "RegisterObjectParam failed: 0x%08x\n", hres);
4729
4730 /* return E_FAIL from GetFindData */
4731 pidl = (ITEMIDLIST*)0xdeadbeef;
4732 fsbdVtbl.GetFindData = fsbd_GetFindData_fail;
4733 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, adirW, NULL, &pidl, NULL);
4734 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4735 if(SUCCEEDED(hres)){
4736 verify_pidl(pidl, adirW);
4737 ILFree(pidl);
4738 }
4739
4740 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afileW, NULL, &pidl, NULL);
4741 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4742 if(SUCCEEDED(hres)){
4743 verify_pidl(pidl, afileW);
4744 ILFree(pidl);
4745 }
4746
4747 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afile2W, NULL, &pidl, NULL);
4748 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4749 if(SUCCEEDED(hres)){
4750 verify_pidl(pidl, afile2W);
4751 ILFree(pidl);
4752 }
4753
4754 /* set FIND_DATA struct to NULLs */
4755 pidl = (ITEMIDLIST*)0xdeadbeef;
4756 fsbdVtbl.GetFindData = fsbd_GetFindData_nul;
4757 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, adirW, NULL, &pidl, NULL);
4758 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4759 if(SUCCEEDED(hres)){
4760 verify_pidl(pidl, adirW);
4761 ILFree(pidl);
4762 }
4763
4764 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afileW, NULL, &pidl, NULL);
4765 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4766 if(SUCCEEDED(hres)){
4767 verify_pidl(pidl, afileW);
4768 ILFree(pidl);
4769 }
4770
4771 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afile2W, NULL, &pidl, NULL);
4772 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4773 if(SUCCEEDED(hres)){
4774 verify_pidl(pidl, afile2W);
4775 ILFree(pidl);
4776 }
4777
4778 /* set FIND_DATA struct to junk */
4779 pidl = (ITEMIDLIST*)0xdeadbeef;
4780 fsbdVtbl.GetFindData = fsbd_GetFindData_junk;
4781 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, adirW, NULL, &pidl, NULL);
4782 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4783 if(SUCCEEDED(hres)){
4784 verify_pidl(pidl, adirW);
4785 ILFree(pidl);
4786 }
4787
4788 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afileW, NULL, &pidl, NULL);
4789 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4790 if(SUCCEEDED(hres)){
4791 verify_pidl(pidl, afileW);
4792 ILFree(pidl);
4793 }
4794
4795 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afile2W, NULL, &pidl, NULL);
4796 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4797 if(SUCCEEDED(hres)){
4798 verify_pidl(pidl, afile2W);
4799 ILFree(pidl);
4800 }
4801
4802 /* set FIND_DATA struct to invalid data */
4803 pidl = (ITEMIDLIST*)0xdeadbeef;
4804 fsbdVtbl.GetFindData = fsbd_GetFindData_invalid;
4805 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, adirW, NULL, &pidl, NULL);
4806 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4807 if(SUCCEEDED(hres)){
4808 verify_pidl(pidl, adirW);
4809 ILFree(pidl);
4810 }
4811
4812 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afileW, NULL, &pidl, NULL);
4813 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4814 if(SUCCEEDED(hres)){
4815 verify_pidl(pidl, afileW);
4816 ILFree(pidl);
4817 }
4818
4819 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afile2W, NULL, &pidl, NULL);
4820 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4821 if(SUCCEEDED(hres)){
4822 verify_pidl(pidl, afile2W);
4823 ILFree(pidl);
4824 }
4825
4826 /* set FIND_DATA struct to valid data */
4827 pidl = (ITEMIDLIST*)0xdeadbeef;
4828 fsbdVtbl.GetFindData = fsbd_GetFindData_valid;
4829 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, adirW, NULL, &pidl, NULL);
4830 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4831 if(SUCCEEDED(hres)){
4832 verify_pidl(pidl, adirW);
4833 ILFree(pidl);
4834 }
4835
4836 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afileW, NULL, &pidl, NULL);
4837 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4838 if(SUCCEEDED(hres)){
4839 verify_pidl(pidl, afileW);
4840 ILFree(pidl);
4841 }
4842
4843 hres = IShellFolder_ParseDisplayName(psf, NULL, pbc, afile2W, NULL, &pidl, NULL);
4844 ok(hres == S_OK, "ParseDisplayName failed: 0x%08x\n", hres);
4845 if(SUCCEEDED(hres)){
4846 verify_pidl(pidl, afile2W);
4847 ILFree(pidl);
4848 }
4849
4850 IBindCtx_Release(pbc);
4851 IShellFolder_Release(psf);
4852}
HRESULT WINAPI CreateBindCtx(DWORD reserved, LPBC *ppbc)
Definition: bindctx.c:556
#define verify_pidl(i, p)
Definition: shlfolder.c:4528
static HRESULT WINAPI fsbd_GetFindData_nul(IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
Definition: shlfolder.c:4630
static HRESULT WINAPI fsbd_GetFindData_valid(IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
Definition: shlfolder.c:4653
static HRESULT WINAPI fsbd_GetFindData_invalid(IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
Definition: shlfolder.c:4644
static HRESULT WINAPI fsbd_GetFindData_fail(IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
Definition: shlfolder.c:4662
static HRESULT WINAPI fsbd_GetFindData_junk(IFileSystemBindData *fsbd, WIN32_FIND_DATAW *pfd)
Definition: shlfolder.c:4637
static IFileSystemBindDataVtbl fsbdVtbl
Definition: shlfolder.c:4668

Referenced by START_TEST().

◆ test_SHChangeNotify()

static void test_SHChangeNotify ( BOOL  test_new_delivery)
static

Definition at line 4946 of file shlfolder.c.

4947{
4948 HWND wnd;
4949 ULONG notifyID, i;
4950 HRESULT hr;
4951 BOOL br, has_unicode;
4952 SHChangeNotifyEntry entries[1];
4953 const CHAR root_dirA[] = "C:\\shell32_cn_test";
4954 const WCHAR root_dirW[] = {'C',':','\\','s','h','e','l','l','3','2','_','c','n','_','t','e','s','t',0};
4955
4956 trace("SHChangeNotify tests (%x)\n", test_new_delivery);
4957
4959 has_unicode = !(GetLastError() == ERROR_CALL_NOT_IMPLEMENTED);
4960
4961 test_new_delivery_flag = test_new_delivery;
4962 if(!test_new_delivery)
4964
4966 CW_USEDEFAULT, CW_USEDEFAULT, 130, 105,
4968 ok(wnd != NULL, "Failed to make a window\n");
4969
4970 br = CreateDirectoryA(root_dirA, NULL);
4971 ok(br == TRUE, "CreateDirectory failed: %d\n", GetLastError());
4972
4973 entries[0].pidl = NULL;
4974 if(has_unicode)
4975 hr = SHILCreateFromPath(root_dirW, (LPITEMIDLIST*)&entries[0].pidl, 0);
4976 else
4977 hr = SHILCreateFromPath((const void *)root_dirA, (LPITEMIDLIST*)&entries[0].pidl, 0);
4978 ok(hr == S_OK, "SHILCreateFromPath failed: 0x%08x\n", hr);
4979 entries[0].fRecursive = TRUE;
4980
4982 SHCNE_ALLEVENTS, WM_USER_NOTIFY, 1, entries);
4983 ok(notifyID != 0, "Failed to register a window for change notifications\n");
4984
4985 for (i = 0; i < ARRAY_SIZE(chnotify_tests); ++i)
4986 {
4988
4989 exp_data->missing_events = exp_data->notify_count;
4991 exp_data->path_1[0] ? exp_data->path_1 : NULL,
4992 exp_data->path_2[0] ? exp_data->path_2 : NULL);
4993 do_events();
4994 ok(exp_data->missing_events == 0, "%s: Expected wndproc to be called\n", exp_data->id);
4995
4996 if(has_unicode){
4997 WCHAR *path1, *path2;
4998
4999 path1 = make_wstr(exp_data->path_1);
5000 path2 = make_wstr(exp_data->path_2);
5001
5002 exp_data->missing_events = exp_data->notify_count;
5004 do_events();
5005 ok(exp_data->missing_events == 0, "%s: Expected wndproc to be called\n", exp_data->id);
5006
5009 }
5010 }
5011
5012 SHChangeNotifyDeregister(notifyID);
5013 DestroyWindow(wnd);
5014
5015 ILFree((LPITEMIDLIST)entries[0].pidl);
5016 br = RemoveDirectoryA(root_dirA);
5017 ok(br == TRUE, "RemoveDirectory failed: %d\n", GetLastError());
5018}
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
EXTERN_C ULONG WINAPI SHChangeNotifyRegister(HWND hwnd, INT fSources, LONG wEventMask, UINT uMsg, INT cItems, SHChangeNotifyEntry *lpItems)
EXTERN_C void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2)
EXTERN_C BOOL WINAPI SHChangeNotifyDeregister(ULONG hNotify)
static const WCHAR path1[]
Definition: path.c:28
static const WCHAR path2[]
Definition: path.c:29
struct ChNotifyTest chnotify_tests[]
#define WM_USER_NOTIFY
Definition: shlfolder.c:4855
static void register_testwindow_class(void)
Definition: shlfolder.c:4912
static void do_events(void)
Definition: shlfolder.c:4931
static WCHAR * make_wstr(const char *str)
Definition: shlfolder.c:71
BOOL test_new_delivery_flag
Definition: shlfolder.c:4871
HRESULT WINAPI SHILCreateFromPath(_In_ PCWSTR, _Outptr_ PIDLIST_ABSOLUTE *, _Inout_opt_ DWORD *)
#define SHCNF_PATHA
Definition: shlobj.h:1928
#define SHCNRF_NewDelivery
Definition: shlobj.h:1944
#define SHCNRF_ShellLevel
Definition: shlobj.h:1942
#define SHCNF_FLUSH
Definition: shlobj.h:1934
#define SHCNF_PATHW
Definition: shlobj.h:1931
#define SHCNE_ALLEVENTS
Definition: shlobj.h:1919
PCIDLIST_ABSOLUTE pidl
Definition: shlobj.h:1891
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
#define CW_USEDEFAULT
Definition: winuser.h:225
BOOL WINAPI DestroyWindow(_In_ HWND)

Referenced by START_TEST().

◆ test_SHCreateDefaultContextMenu()

static void test_SHCreateDefaultContextMenu ( void  )
static

Definition at line 5020 of file shlfolder.c.

5021{
5022 HKEY keys[16];
5024 IShellFolder *desktop,*folder;
5025 IPersistFolder2 *persist;
5026 IContextMenu *cmenu;
5027 LONG status;
5028 LPITEMIDLIST pidlFolder, pidl_child, pidl;
5029 DEFCONTEXTMENU cminfo;
5030 HRESULT hr;
5031 UINT i;
5032 const WCHAR filename[] =
5033 {'\\','t','e','s','t','d','i','r','\\','t','e','s','t','1','.','t','x','t',0};
5034 if(!pSHCreateDefaultContextMenu)
5035 {
5036 win_skip("SHCreateDefaultContextMenu missing.\n");
5037 return;
5038 }
5039
5041 if (!path[0])
5042 {
5043 skip("GetCurrentDirectoryW returned an empty string.\n");
5044 return;
5045 }
5047 SHGetDesktopFolder(&desktop);
5048
5050
5051 hr = IShellFolder_ParseDisplayName(desktop, NULL, NULL, path, NULL, &pidl, 0);
5052 ok(hr == S_OK, "Got 0x%08x\n", hr);
5053 if(SUCCEEDED(hr))
5054 {
5055 hr = SHBindToParent(pidl, &IID_IShellFolder, (void **)&folder, (const ITEMIDLIST **)&pidl_child);
5056 ok(hr == S_OK, "Got 0x%08x\n", hr);
5057
5058 IShellFolder_QueryInterface(folder,&IID_IPersistFolder2,(void**)&persist);
5059 IPersistFolder2_GetCurFolder(persist,&pidlFolder);
5060 IPersistFolder2_Release(persist);
5061 if(SUCCEEDED(hr))
5062 {
5063 cminfo.hwnd=NULL;
5064 cminfo.pcmcb=NULL;
5065 cminfo.psf=folder;
5066 cminfo.pidlFolder=NULL;
5067 cminfo.apidl=(LPCITEMIDLIST*)&pidl_child;
5068 cminfo.cidl=1;
5069 cminfo.aKeys=NULL;
5070 cminfo.cKeys=0;
5072
5073 hr = pSHCreateDefaultContextMenu(&cminfo,&IID_IContextMenu,(void**)&cmenu);
5074 ok(hr==S_OK,"Got 0x%08x\n", hr);
5075 test_contextmenu_qi(cmenu, TRUE);
5076 IContextMenu_Release(cmenu);
5077
5078 cminfo.pidlFolder=pidlFolder;
5079 hr = pSHCreateDefaultContextMenu(&cminfo,&IID_IContextMenu,(void**)&cmenu);
5080 ok(hr==S_OK,"Got 0x%08x\n", hr);
5081 test_contextmenu_qi(cmenu, TRUE);
5082 IContextMenu_Release(cmenu);
5083
5085 if(status==ERROR_SUCCESS){
5086 for(i=1;i<16;i++)
5087 keys[i]=keys[0];
5088 cminfo.aKeys=keys;
5089 cminfo.cKeys=16;
5090 hr = pSHCreateDefaultContextMenu(&cminfo,&IID_IContextMenu,(void**)&cmenu);
5091 RegCloseKey(keys[0]);
5092 ok(hr==S_OK,"Got 0x%08x\n", hr);
5093 IContextMenu_Release(cmenu);
5094 }
5095 }
5096 ILFree(pidlFolder);
5097 IShellFolder_Release(folder);
5098 }
5099 IShellFolder_Release(desktop);
5100 ILFree(pidl);
5101 Cleanup();
5102}
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3298
const UINT * keys
Definition: locale.c:416
IContextMenuCB * pcmcb
Definition: shlobj.h:2556
IShellFolder * psf
Definition: shlobj.h:2558
IUnknown * punkAssociationInfo
Definition: shlobj.h:2561
PCUITEMID_CHILD_ARRAY apidl
Definition: shlobj.h:2560
const HKEY * aKeys
Definition: shlobj.h:2563
PCIDLIST_ABSOLUTE pidlFolder
Definition: shlobj.h:2557
Definition: ps.c:97

Referenced by START_TEST().

◆ test_SHCreateShellItem()

static void test_SHCreateShellItem ( void  )
static

Definition at line 2000 of file shlfolder.c.

2001{
2002 IShellItem *shellitem, *shellitem2;
2003 IPersistIDList *persistidl;
2004 LPITEMIDLIST pidl_cwd=NULL, pidl_testfile, pidl_abstestfile, pidl_test, pidl_desktop;
2005 HRESULT ret;
2006 char curdirA[MAX_PATH];
2007 WCHAR curdirW[MAX_PATH];
2008 WCHAR fnbufW[MAX_PATH];
2009 IShellFolder *desktopfolder=NULL, *currentfolder=NULL;
2010 static WCHAR testfileW[] = {'t','e','s','t','f','i','l','e',0};
2011
2013
2014 if (!pSHCreateShellItem)
2015 {
2016 win_skip("SHCreateShellItem isn't available\n");
2017 return;
2018 }
2019
2020 if (!curdirA[0])
2021 {
2022 win_skip("GetCurrentDirectoryA returned empty string, skipping test_SHCreateShellItem\n");
2023 return;
2024 }
2025
2027 ok(ret == S_OK, "Got 0x%08x\n", ret);
2028
2029 MultiByteToWideChar(CP_ACP, 0, curdirA, -1, curdirW, MAX_PATH);
2030
2031 ret = SHGetDesktopFolder(&desktopfolder);
2032 ok(SUCCEEDED(ret), "SHGetShellFolder returned %x\n", ret);
2033
2034 ret = IShellFolder_ParseDisplayName(desktopfolder, NULL, NULL, curdirW, NULL, &pidl_cwd, NULL);
2035 ok(SUCCEEDED(ret), "ParseDisplayName returned %x\n", ret);
2036
2037 ret = IShellFolder_BindToObject(desktopfolder, pidl_cwd, NULL, &IID_IShellFolder, (void**)&currentfolder);
2038 ok(SUCCEEDED(ret), "BindToObject returned %x\n", ret);
2039
2040 CreateTestFile(".\\testfile");
2041
2042 ret = IShellFolder_ParseDisplayName(currentfolder, NULL, NULL, testfileW, NULL, &pidl_testfile, NULL);
2043 ok(SUCCEEDED(ret), "ParseDisplayName returned %x\n", ret);
2044
2045 pidl_abstestfile = ILCombine(pidl_cwd, pidl_testfile);
2046
2047 shellitem = (void*)0xdeadbeef;
2048 ret = pSHCreateShellItem(NULL, NULL, NULL, &shellitem);
2049 ok(ret == E_INVALIDARG, "SHCreateShellItem returned %x\n", ret);
2050 ok(shellitem == 0, "Got %p\n", shellitem);
2051
2052 if (0) /* crashes on Windows XP */
2053 {
2054 pSHCreateShellItem(NULL, NULL, pidl_cwd, NULL);
2055 pSHCreateShellItem(pidl_cwd, NULL, NULL, &shellitem);
2056 pSHCreateShellItem(NULL, currentfolder, NULL, &shellitem);
2057 pSHCreateShellItem(pidl_cwd, currentfolder, NULL, &shellitem);
2058 }
2059
2060 ret = pSHCreateShellItem(NULL, NULL, pidl_cwd, &shellitem);
2061 ok(SUCCEEDED(ret), "SHCreateShellItem returned %x\n", ret);
2062 if (SUCCEEDED(ret))
2063 {
2064 ret = IShellItem_QueryInterface(shellitem, &IID_IPersistIDList, (void**)&persistidl);
2065 ok(SUCCEEDED(ret), "QueryInterface returned %x\n", ret);
2066 if (SUCCEEDED(ret))
2067 {
2068 ret = IPersistIDList_GetIDList(persistidl, &pidl_test);
2069 ok(SUCCEEDED(ret), "GetIDList returned %x\n", ret);
2070 if (SUCCEEDED(ret))
2071 {
2072 ok(ILIsEqual(pidl_cwd, pidl_test), "id lists are not equal\n");
2073 ILFree(pidl_test);
2074 }
2075 IPersistIDList_Release(persistidl);
2076 }
2077 IShellItem_Release(shellitem);
2078 }
2079
2080 ret = pSHCreateShellItem(pidl_cwd, NULL, pidl_testfile, &shellitem);
2081 ok(SUCCEEDED(ret), "SHCreateShellItem returned %x\n", ret);
2082 if (SUCCEEDED(ret))
2083 {
2084 ret = IShellItem_QueryInterface(shellitem, &IID_IPersistIDList, (void**)&persistidl);
2085 ok(SUCCEEDED(ret), "QueryInterface returned %x\n", ret);
2086 if (SUCCEEDED(ret))
2087 {
2088 ret = IPersistIDList_GetIDList(persistidl, &pidl_test);
2089 ok(SUCCEEDED(ret), "GetIDList returned %x\n", ret);
2090 if (SUCCEEDED(ret))
2091 {
2092 ok(ILIsEqual(pidl_abstestfile, pidl_test), "id lists are not equal\n");
2093 ILFree(pidl_test);
2094 }
2095 IPersistIDList_Release(persistidl);
2096 }
2097
2098 ret = IShellItem_GetParent(shellitem, &shellitem2);
2099 ok(SUCCEEDED(ret), "GetParent returned %x\n", ret);
2100 if (SUCCEEDED(ret))
2101 {
2102 ret = IShellItem_QueryInterface(shellitem2, &IID_IPersistIDList, (void**)&persistidl);
2103 ok(SUCCEEDED(ret), "QueryInterface returned %x\n", ret);
2104 if (SUCCEEDED(ret))
2105 {
2106 ret = IPersistIDList_GetIDList(persistidl, &pidl_test);
2107 ok(SUCCEEDED(ret), "GetIDList returned %x\n", ret);
2108 if (SUCCEEDED(ret))
2109 {
2110 ok(ILIsEqual(pidl_cwd, pidl_test), "id lists are not equal\n");
2111 ILFree(pidl_test);
2112 }
2113 IPersistIDList_Release(persistidl);
2114 }
2115 IShellItem_Release(shellitem2);
2116 }
2117
2118 IShellItem_Release(shellitem);
2119 }
2120
2121 ret = pSHCreateShellItem(NULL, currentfolder, pidl_testfile, &shellitem);
2122 ok(SUCCEEDED(ret), "SHCreateShellItem returned %x\n", ret);
2123 if (SUCCEEDED(ret))
2124 {
2125 ret = IShellItem_QueryInterface(shellitem, &IID_IPersistIDList, (void**)&persistidl);
2126 ok(SUCCEEDED(ret), "QueryInterface returned %x\n", ret);
2127 if (SUCCEEDED(ret))
2128 {
2129 ret = IPersistIDList_GetIDList(persistidl, &pidl_test);
2130 ok(SUCCEEDED(ret), "GetIDList returned %x\n", ret);
2131 if (SUCCEEDED(ret))
2132 {
2133 ok(ILIsEqual(pidl_abstestfile, pidl_test), "id lists are not equal\n");
2134 ILFree(pidl_test);
2135 }
2136 IPersistIDList_Release(persistidl);
2137 }
2138 IShellItem_Release(shellitem);
2139 }
2140
2141 /* if a parent pidl and shellfolder are specified, the shellfolder is ignored */
2142 ret = pSHCreateShellItem(pidl_cwd, desktopfolder, pidl_testfile, &shellitem);
2143 ok(SUCCEEDED(ret), "SHCreateShellItem returned %x\n", ret);
2144 if (SUCCEEDED(ret))
2145 {
2146 ret = IShellItem_QueryInterface(shellitem, &IID_IPersistIDList, (void**)&persistidl);
2147 ok(SUCCEEDED(ret), "QueryInterface returned %x\n", ret);
2148 if (SUCCEEDED(ret))
2149 {
2150 ret = IPersistIDList_GetIDList(persistidl, &pidl_test);
2151 ok(SUCCEEDED(ret), "GetIDList returned %x\n", ret);
2152 if (SUCCEEDED(ret))
2153 {
2154 ok(ILIsEqual(pidl_abstestfile, pidl_test), "id lists are not equal\n");
2155 ILFree(pidl_test);
2156 }
2157 IPersistIDList_Release(persistidl);
2158 }
2159 IShellItem_Release(shellitem);
2160 }
2161
2162 ret = pSHCreateShellItem(NULL, desktopfolder, pidl_testfile, &shellitem);
2163 ok(SUCCEEDED(ret), "SHCreateShellItem returned %x\n", ret);
2164 if (SUCCEEDED(ret))
2165 {
2166 ret = IShellItem_QueryInterface(shellitem, &IID_IPersistIDList, (void**)&persistidl);
2167 ok(SUCCEEDED(ret), "QueryInterface returned %x\n", ret);
2168 if (SUCCEEDED(ret))
2169 {
2170 ret = IPersistIDList_GetIDList(persistidl, &pidl_test);
2171 ok(SUCCEEDED(ret), "GetIDList returned %x\n", ret);
2172 if (SUCCEEDED(ret))
2173 {
2174 ok(ILIsEqual(pidl_testfile, pidl_test), "id lists are not equal\n");
2175 ILFree(pidl_test);
2176 }
2177 IPersistIDList_Release(persistidl);
2178 }
2179
2180 IShellItem_Release(shellitem);
2181 }
2182
2183 ret = pSHCreateShellItem(NULL, NULL, pidl_desktop, &shellitem);
2184 ok(SUCCEEDED(ret), "SHCreateShellItem returned %x\n", ret);
2185 if (SUCCEEDED(ret))
2186 {
2187 ret = IShellItem_GetParent(shellitem, &shellitem2);
2188 ok(FAILED(ret), "Got 0x%08x\n", ret);
2189 if(SUCCEEDED(ret)) IShellItem_Release(shellitem2);
2190 IShellItem_Release(shellitem);
2191 }
2192
2193 /* SHCreateItemFromParsingName */
2194 if(pSHCreateItemFromParsingName)
2195 {
2196 if(0)
2197 {
2198 /* Crashes under windows 7 */
2199 pSHCreateItemFromParsingName(NULL, NULL, &IID_IShellItem, NULL);
2200 }
2201
2202 shellitem = (void*)0xdeadbeef;
2203 ret = pSHCreateItemFromParsingName(NULL, NULL, &IID_IShellItem, (void**)&shellitem);
2204 ok(ret == E_INVALIDARG, "SHCreateItemFromParsingName returned %x\n", ret);
2205 ok(shellitem == NULL, "shellitem was %p.\n", shellitem);
2206
2207 ret = pSHCreateItemFromParsingName(testfileW, NULL, &IID_IShellItem, (void**)&shellitem);
2209 "SHCreateItemFromParsingName returned %x\n", ret);
2210 if(SUCCEEDED(ret)) IShellItem_Release(shellitem);
2211
2212 lstrcpyW(fnbufW, curdirW);
2213 myPathAddBackslashW(fnbufW);
2214 lstrcatW(fnbufW, testfileW);
2215
2216 ret = pSHCreateItemFromParsingName(fnbufW, NULL, &IID_IShellItem, (void**)&shellitem);
2217 ok(ret == S_OK, "SHCreateItemFromParsingName returned %x\n", ret);
2218 if(SUCCEEDED(ret))
2219 {
2220 LPWSTR tmp_fname;
2221 ret = IShellItem_GetDisplayName(shellitem, SIGDN_FILESYSPATH, &tmp_fname);
2222 ok(ret == S_OK, "GetDisplayName returned %x\n", ret);
2223 if(SUCCEEDED(ret))
2224 {
2225 ok(!lstrcmpW(fnbufW, tmp_fname), "strings not equal\n");
2226 CoTaskMemFree(tmp_fname);
2227 }
2228 IShellItem_Release(shellitem);
2229 }
2230 }
2231 else
2232 win_skip("No SHCreateItemFromParsingName\n");
2233
2234
2235 /* SHCreateItemFromIDList */
2236 if(pSHCreateItemFromIDList)
2237 {
2238 if(0)
2239 {
2240 /* Crashes under win7 */
2241 pSHCreateItemFromIDList(NULL, &IID_IShellItem, NULL);
2242 }
2243
2244 ret = pSHCreateItemFromIDList(NULL, &IID_IShellItem, (void**)&shellitem);
2245 ok(ret == E_INVALIDARG, "SHCreateItemFromIDList returned %x\n", ret);
2246
2247 ret = pSHCreateItemFromIDList(pidl_cwd, &IID_IShellItem, (void**)&shellitem);
2248 ok(ret == S_OK, "SHCreateItemFromIDList returned %x\n", ret);
2249 if (SUCCEEDED(ret))
2250 {
2251 ret = IShellItem_QueryInterface(shellitem, &IID_IPersistIDList, (void**)&persistidl);
2252 ok(ret == S_OK, "QueryInterface returned %x\n", ret);
2253 if (SUCCEEDED(ret))
2254 {
2255 ret = IPersistIDList_GetIDList(persistidl, &pidl_test);
2256 ok(ret == S_OK, "GetIDList returned %x\n", ret);
2257 if (SUCCEEDED(ret))
2258 {
2259 ok(ILIsEqual(pidl_cwd, pidl_test), "id lists are not equal\n");
2260 ILFree(pidl_test);
2261 }
2262 IPersistIDList_Release(persistidl);
2263 }
2264 IShellItem_Release(shellitem);
2265 }
2266
2267 ret = pSHCreateItemFromIDList(pidl_testfile, &IID_IShellItem, (void**)&shellitem);
2268 ok(ret == S_OK, "SHCreateItemFromIDList returned %x\n", ret);
2269 if (SUCCEEDED(ret))
2270 {
2271 ret = IShellItem_QueryInterface(shellitem, &IID_IPersistIDList, (void**)&persistidl);
2272 ok(ret == S_OK, "QueryInterface returned %x\n", ret);
2273 if (SUCCEEDED(ret))
2274 {
2275 ret = IPersistIDList_GetIDList(persistidl, &pidl_test);
2276 ok(ret == S_OK, "GetIDList returned %x\n", ret);
2277 if (SUCCEEDED(ret))
2278 {
2279 ok(ILIsEqual(pidl_testfile, pidl_test), "id lists are not equal\n");
2280 ILFree(pidl_test);
2281 }
2282 IPersistIDList_Release(persistidl);
2283 }
2284 IShellItem_Release(shellitem);
2285 }
2286 }
2287 else
2288 win_skip("No SHCreateItemFromIDList\n");
2289
2290 /* SHCreateItemFromRelativeName */
2291 if(pSHCreateItemFromRelativeName && pSHGetKnownFolderPath)
2292 {
2293 IShellItem *shellitem_desktop = NULL;
2294 WCHAR *desktop_path, *displayname;
2295 WCHAR testfile_path[MAX_PATH] = {0};
2296 HANDLE file;
2297 LPITEMIDLIST pidl_desktop_testfile = NULL;
2298 int order;
2299
2300 ret = pSHCreateShellItem(NULL, NULL, pidl_desktop, &shellitem_desktop);
2301 ok(ret == S_OK, "SHCreateShellItem failed: 0x%08x.\n", ret);
2302
2303 shellitem = (void*)0xdeadbeef;
2304 ret = pSHCreateItemFromRelativeName(shellitem_desktop, NULL, NULL, &IID_IShellItem,
2305 (void**)&shellitem);
2306 ok(ret == E_INVALIDARG, "Expected 0x%08x but SHCreateItemFromRelativeName return: 0x%08x.\n",
2307 E_INVALIDARG, ret);
2308 ok(shellitem == NULL, "shellitem was %p.\n", shellitem);
2309
2310 /* Test with a non-existent file */
2311 shellitem = (void*)0xdeadbeef;
2312 ret = pSHCreateItemFromRelativeName(shellitem_desktop, testfileW, NULL, &IID_IShellItem,
2313 (void**)&shellitem);
2315 "Expected 0x%08x but SHCreateItemFromRelativeName return: 0x%08x.\n",
2317 ok(shellitem == NULL, "shellitem was %p.\n", shellitem);
2318
2319 /* Create a file for testing in desktop folder */
2320 pSHGetKnownFolderPath(&FOLDERID_Desktop, 0, NULL, &desktop_path);
2321 lstrcatW(testfile_path, desktop_path);
2322 myPathAddBackslashW(testfile_path);
2323 lstrcatW(testfile_path, testfileW);
2324 file = CreateFileW(testfile_path, GENERIC_WRITE, 0, NULL, CREATE_NEW, 0, NULL);
2325 ok(file != INVALID_HANDLE_VALUE, "CreateFileW failed! Last error: 0x%08x.\n", GetLastError());
2327
2328 shellitem = (void*)0xdeadbeef;
2329 ret = pSHCreateItemFromRelativeName(shellitem_desktop, testfileW, NULL, &IID_IShellItem,
2330 (void**)&shellitem);
2331 ok(ret == S_OK, "SHCreateItemFromRelativeName failed: 0x%08x.\n", ret);
2332 ok(shellitem != NULL, "shellitem was %p.\n", shellitem);
2333 if(SUCCEEDED(ret))
2334 {
2335 ret = IShellItem_GetDisplayName(shellitem, 0, &displayname);
2336 ok(ret == S_OK, "IShellItem_GetDisplayName failed: 0x%08x.\n", ret);
2337 ok(!lstrcmpW(displayname, testfileW), "got wrong display name: %s.\n", wine_dbgstr_w(displayname));
2338 CoTaskMemFree(displayname);
2339
2340 shellitem2 = (void*)0xdeadbeef;
2341 ret = pSHCreateItemFromRelativeName(shellitem_desktop, testfileW, NULL, &IID_IShellItem,
2342 (void**)&shellitem2);
2343 ok(ret == S_OK, "SHCreateItemFromRelativeName failed: 0x%08x.\n", ret);
2344 ret = IShellItem_Compare(shellitem, shellitem2, 0, &order);
2345 ok(ret == S_OK, "IShellItem_Compare failed: 0x%08x.\n", ret);
2346 ok(!order, "order got wrong value: %d.\n", order);
2347 IShellItem_Release(shellitem2);
2348
2349 shellitem2 = (void*)0xdeadbeef;
2351 &pidl_desktop_testfile, NULL);
2352 ok(ret == S_OK, "ParseDisplayName failed 0x%08x.\n", ret);
2353 ret = pSHCreateItemFromIDList(pidl_desktop_testfile, &IID_IShellItem, (void**)&shellitem2);
2354 ret = IShellItem_Compare(shellitem, shellitem2, 0, &order);
2355 ok(ret == S_OK, "IShellItem_Compare fail: 0x%08x.\n", ret);
2356 ok(!order, "order got wrong value: %d.\n", order);
2357 ILFree(pidl_desktop_testfile);
2358 IShellItem_Release(shellitem2);
2359
2360 IShellItem_Release(shellitem);
2361 }
2362
2363 DeleteFileW(testfile_path);
2364 CoTaskMemFree(desktop_path);
2365 IShellItem_Release(shellitem_desktop);
2366 }
2367 else
2368 win_skip("No SHCreateItemFromRelativeName or SHGetKnownFolderPath\n");
2369
2370 /* SHCreateItemInKnownFolder */
2371 if(pSHCreateItemInKnownFolder && pSHGetKnownFolderPath)
2372 {
2373 WCHAR *desktop_path;
2374 WCHAR testfile_path[MAX_PATH] = {0};
2375 HANDLE file;
2376 WCHAR *displayname = NULL;
2377 int order;
2378 LPITEMIDLIST pidl_desktop_testfile = NULL;
2379
2380 shellitem = (void*)0xdeadbeef;
2381 ret = pSHCreateItemInKnownFolder(&FOLDERID_Desktop, 0, NULL, &IID_IShellItem,
2382 (void**)&shellitem);
2383 ok(ret == S_OK, "SHCreateItemInKnownFolder failed: 0x%08x.\n", ret);
2384 ok(shellitem != NULL, "shellitem was %p.\n", shellitem);
2385 if(SUCCEEDED(ret))
2386 {
2387 shellitem2 = (void*)0xdeadbeef;
2388 ret = pSHCreateShellItem(NULL, NULL, pidl_desktop, &shellitem2);
2389 ok(SUCCEEDED(ret), "SHCreateShellItem returned %x\n", ret);
2390 if(SUCCEEDED(ret))
2391 {
2392 ret = IShellItem_Compare(shellitem, shellitem2, 0, &order);
2393 ok(ret == S_OK, "IShellItem_Compare failed: 0x%08x.\n", ret);
2394 ok(!order, "order got wrong value: %d.\n", order);
2395 IShellItem_Release(shellitem2);
2396 }
2397 IShellItem_Release(shellitem);
2398 }
2399
2400 /* Test with a non-existent file */
2401 shellitem = (void*)0xdeadbeef;
2402 ret = pSHCreateItemInKnownFolder(&FOLDERID_Desktop, 0, testfileW, &IID_IShellItem,
2403 (void**)&shellitem);
2405 "Expected 0x%08x but SHCreateItemInKnownFolder return: 0x%08x.\n",
2407 ok(shellitem == NULL, "shellitem was %p.\n", shellitem);
2408
2409 pSHGetKnownFolderPath(&FOLDERID_Desktop, 0, NULL, &desktop_path);
2410 lstrcatW(testfile_path, desktop_path);
2411 myPathAddBackslashW(testfile_path);
2412 lstrcatW(testfile_path, testfileW);
2413 file = CreateFileW(testfile_path, GENERIC_WRITE, 0, NULL, CREATE_NEW, 0, NULL);
2414 ok(file != INVALID_HANDLE_VALUE, "CreateFileW failed! Last error: 0x%08x.\n", GetLastError());
2416
2417 shellitem = (void*)0xdeadbeef;
2418 ret = pSHCreateItemInKnownFolder(&FOLDERID_Desktop, 0, testfileW, &IID_IShellItem,
2419 (void**)&shellitem);
2420 ok(ret == S_OK, "SHCreateItemInKnownFolder failed: 0x%08x.\n", ret);
2421 ok(shellitem != NULL, "shellitem was %p.\n", shellitem);
2422 if(SUCCEEDED(ret))
2423 {
2424 ret = IShellItem_GetDisplayName(shellitem, 0, &displayname);
2425 ok(ret == S_OK, "IShellItem_GetDisplayName failed: 0x%08x.\n", ret);
2426 ok(!lstrcmpW(displayname, testfileW), "got wrong display name: %s.\n",
2427 wine_dbgstr_w(displayname));
2428 CoTaskMemFree(displayname);
2429
2430 shellitem2 = (void*)0xdeadbeef;
2431 ret = pSHCreateItemInKnownFolder(&FOLDERID_Desktop, 0, testfileW, &IID_IShellItem,
2432 (void**)&shellitem2);
2433 ok(ret == S_OK, "SHCreateItemInKnownFolder failed: 0x%08x.\n", ret);
2434 ok(shellitem2 != NULL, "shellitem was %p.\n", shellitem);
2435 ret = IShellItem_Compare(shellitem, shellitem2, 0, &order);
2436 ok(ret == S_OK, "IShellItem_Compare failed: 0x%08x.\n", ret);
2437 ok(!order, "order got wrong value: %d.\n", order);
2438 IShellItem_Release(shellitem2);
2439
2440 shellitem2 = (void*)0xdeadbeef;
2442 &pidl_desktop_testfile, NULL);
2443 ok(SUCCEEDED(ret), "ParseDisplayName returned %x.\n", ret);
2444 ret = pSHCreateItemFromIDList(pidl_desktop_testfile, &IID_IShellItem, (void**)&shellitem2);
2445 ret = IShellItem_Compare(shellitem, shellitem2, 0, &order);
2446 ok(ret == S_OK, "IShellItem_Compare failed: 0x%08x.\n", ret);
2447 ok(!order, "order got wrong value: %d.\n", order);
2448 ILFree(pidl_desktop_testfile);
2449 IShellItem_Release(shellitem2);
2450
2451 IShellItem_Release(shellitem);
2452 }
2453
2454 shellitem = (void*)0xdeadbeef;
2455 ret = pSHCreateItemInKnownFolder(&FOLDERID_Documents, 0, NULL, &IID_IShellItem,
2456 (void**)&shellitem);
2457 ok(ret == S_OK, "SHCreateItemInKnownFolder failed: 0x%08x.\n", ret);
2458 ok(shellitem != NULL, "shellitem was %p.\n", shellitem);
2459 if(SUCCEEDED(ret))
2460 {
2461 shellitem2 = (void*)0xdeadbeef;
2462 ret = pSHCreateItemInKnownFolder(&FOLDERID_Documents, 0, NULL, &IID_IShellItem,
2463 (void**)&shellitem2);
2464 ok(ret == S_OK, "SHCreateItemInKnownFolder failed: 0x%08x.\n", ret);
2465 ok(shellitem2 != NULL, "shellitem was %p.\n", shellitem);
2466 ret = IShellItem_Compare(shellitem, shellitem2, 0, &order);
2467 ok(ret == S_OK, "IShellItem_Compare failed: 0x%08x.\n", ret);
2468 ok(!order, "order got wrong value: %d.\n", order);
2469 IShellItem_Release(shellitem2);
2470
2471 IShellItem_Release(shellitem);
2472 }
2473 DeleteFileW(testfile_path);
2474 CoTaskMemFree(desktop_path);
2475 }
2476 else
2477 win_skip("No SHCreateItemInKnownFolder or SHGetKnownFolderPath\n");
2478
2479 DeleteFileA(".\\testfile");
2480 ILFree(pidl_abstestfile);
2481 ILFree(pidl_testfile);
2482 ILFree(pidl_desktop);
2483 ILFree(pidl_cwd);
2484 IShellFolder_Release(currentfolder);
2485 IShellFolder_Release(desktopfolder);
2486}
#define lstrcpyW
Definition: compat.h:749
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
Definition: shellpath.c:3384
GLuint GLdouble GLdouble GLint GLint order
Definition: glext.h:11194
static const WCHAR testfileW[]
Definition: filesystem.c:49
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by START_TEST().

◆ test_SHCreateShellItemArray()

static void test_SHCreateShellItemArray ( void  )
static

Definition at line 3266 of file shlfolder.c.

3267{
3268 IShellFolder *pdesktopsf, *psf;
3269 IShellItemArray *psia;
3270 IEnumIDList *peidl;
3271 HRESULT hr;
3272 WCHAR cTestDirW[MAX_PATH];
3273 LPITEMIDLIST pidl_testdir, pidl;
3274 static const WCHAR testdirW[] = {'t','e','s','t','d','i','r',0};
3275
3276 if(!pSHCreateShellItemArray) {
3277 skip("No pSHCreateShellItemArray!\n");
3278 return;
3279 }
3280
3281 if(0)
3282 {
3283 /* Crashes under native */
3284 pSHCreateShellItemArray(NULL, NULL, 0, NULL, NULL);
3285 pSHCreateShellItemArray(NULL, NULL, 1, NULL, NULL);
3286 pSHCreateShellItemArray(NULL, pdesktopsf, 0, NULL, NULL);
3287 pSHCreateShellItemArray(pidl, NULL, 0, NULL, NULL);
3288 }
3289
3290 hr = pSHCreateShellItemArray(NULL, NULL, 0, NULL, &psia);
3291 ok(hr == E_POINTER, "got 0x%08x\n", hr);
3292
3293 SHGetDesktopFolder(&pdesktopsf);
3294 hr = pSHCreateShellItemArray(NULL, pdesktopsf, 0, NULL, &psia);
3295 ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
3296
3297 hr = pSHCreateShellItemArray(NULL, pdesktopsf, 1, NULL, &psia);
3298 ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
3299
3301 hr = pSHCreateShellItemArray(pidl, NULL, 0, NULL, &psia);
3302 ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
3303 ILFree(pidl);
3304
3305 GetCurrentDirectoryW(MAX_PATH, cTestDirW);
3306 myPathAddBackslashW(cTestDirW);
3307 lstrcatW(cTestDirW, testdirW);
3308
3310
3311 hr = IShellFolder_ParseDisplayName(pdesktopsf, NULL, NULL, cTestDirW, NULL, &pidl_testdir, 0);
3312 ok(hr == S_OK, "got 0x%08x\n", hr);
3313 if(SUCCEEDED(hr))
3314 {
3315 hr = IShellFolder_BindToObject(pdesktopsf, pidl_testdir, NULL, (REFIID)&IID_IShellFolder,
3316 (void**)&psf);
3317 ok(hr == S_OK, "Got 0x%08x\n", hr);
3318 }
3319 IShellFolder_Release(pdesktopsf);
3320
3321 if(FAILED(hr))
3322 {
3323 skip("Failed to set up environment for SHCreateShellItemArray tests.\n");
3324 ILFree(pidl_testdir);
3325 Cleanup();
3326 return;
3327 }
3328
3329 hr = IShellFolder_EnumObjects(psf, NULL, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &peidl);
3330 ok(hr == S_OK, "Got %08x\n", hr);
3331 if(SUCCEEDED(hr))
3332 {
3333 LPITEMIDLIST apidl[5];
3334 UINT done, numitems, i;
3335
3336 for(done = 0; done < 5; done++)
3337 if(IEnumIDList_Next(peidl, 1, &apidl[done], NULL) != S_OK)
3338 break;
3339 ok(done == 5, "Got %d pidls\n", done);
3340 IEnumIDList_Release(peidl);
3341
3342 /* Create a ShellItemArray */
3343 hr = pSHCreateShellItemArray(NULL, psf, done, (LPCITEMIDLIST*)apidl, &psia);
3344 ok(hr == S_OK, "Got 0x%08x\n", hr);
3345 if(SUCCEEDED(hr))
3346 {
3347 IShellItem *psi;
3348
3349 if(0)
3350 {
3351 /* Crashes in Windows 7 */
3352 IShellItemArray_GetCount(psia, NULL);
3353 }
3354
3355 IShellItemArray_GetCount(psia, &numitems);
3356 ok(numitems == done, "Got %d, expected %d\n", numitems, done);
3357
3358 hr = IShellItemArray_GetItemAt(psia, numitems, &psi);
3359 ok(hr == E_FAIL, "Got 0x%08x\n", hr);
3360
3361 /* Compare all the items */
3362 for(i = 0; i < numitems; i++)
3363 {
3364 LPITEMIDLIST pidl_abs;
3365 pidl_abs = ILCombine(pidl_testdir, apidl[i]);
3366
3367 hr = IShellItemArray_GetItemAt(psia, i, &psi);
3368 ok(hr == S_OK, "(%d) Failed with 0x%08x\n", i, hr);
3369 if(SUCCEEDED(hr))
3370 {
3371 hr = pSHGetIDListFromObject((IUnknown*)psi, &pidl);
3372 ok(hr == S_OK, "Got 0x%08x\n", hr);
3373 if(SUCCEEDED(hr))
3374 {
3375 ok(ILIsEqual(pidl_abs, pidl), "Pidl not equal.\n");
3376 ILFree(pidl);
3377 }
3378 IShellItem_Release(psi);
3379 }
3380 ILFree(pidl_abs);
3381 }
3382 for(i = 0; i < done; i++)
3383 ILFree(apidl[i]);
3384 IShellItemArray_Release(psia);
3385 }
3386 }
3387
3388 /* SHCreateShellItemArrayFromShellItem */
3389 if(pSHCreateShellItemArrayFromShellItem)
3390 {
3391 IShellItem *psi;
3392
3393 if(0)
3394 {
3395 /* Crashes under Windows 7 */
3396 pSHCreateShellItemArrayFromShellItem(NULL, &IID_IShellItemArray, NULL);
3397 pSHCreateShellItemArrayFromShellItem(NULL, &IID_IShellItemArray, (void**)&psia);
3398 pSHCreateShellItemArrayFromShellItem(psi, &IID_IShellItemArray, NULL);
3399 }
3400
3401 hr = pSHCreateItemFromIDList(pidl_testdir, &IID_IShellItem, (void**)&psi);
3402 ok(hr == S_OK, "Got 0x%08x\n", hr);
3403 if(SUCCEEDED(hr))
3404 {
3405 hr = pSHCreateShellItemArrayFromShellItem(psi, &IID_IShellItemArray, (void**)&psia);
3406 ok(hr == S_OK, "Got 0x%08x\n", hr);
3407 if(SUCCEEDED(hr))
3408 {
3409 IShellItem *psi2;
3410 UINT count;
3411 hr = IShellItemArray_GetCount(psia, &count);
3412 ok(hr == S_OK, "Got 0x%08x\n", hr);
3413 ok(count == 1, "Got count %d\n", count);
3414 hr = IShellItemArray_GetItemAt(psia, 0, &psi2);
3415 ok(hr == S_OK, "Got 0x%08x\n", hr);
3416 todo_wine
3417 ok(psi != psi2, "ShellItems are of the same instance.\n");
3418 if(SUCCEEDED(hr))
3419 {
3420 LPITEMIDLIST pidl1, pidl2;
3421 hr = pSHGetIDListFromObject((IUnknown*)psi, &pidl1);
3422 ok(hr == S_OK, "Got 0x%08x\n", hr);
3423 ok(pidl1 != NULL, "pidl1 was null.\n");
3424 hr = pSHGetIDListFromObject((IUnknown*)psi2, &pidl2);
3425 ok(hr == S_OK, "Got 0x%08x\n", hr);
3426 ok(pidl2 != NULL, "pidl2 was null.\n");
3427 ok(ILIsEqual(pidl1, pidl2), "pidls not equal.\n");
3428 ILFree(pidl1);
3429 ILFree(pidl2);
3430 IShellItem_Release(psi2);
3431 }
3432 hr = IShellItemArray_GetItemAt(psia, 1, &psi2);
3433 ok(hr == E_FAIL, "Got 0x%08x\n", hr);
3434 IShellItemArray_Release(psia);
3435 }
3436 IShellItem_Release(psi);
3437 }
3438 }
3439 else
3440 skip("No SHCreateShellItemArrayFromShellItem.\n");
3441
3442 if(pSHCreateShellItemArrayFromDataObject)
3443 {
3444 IShellView *psv;
3445
3446 if(0)
3447 {
3448 /* Crashes under Windows 7 */
3449 pSHCreateShellItemArrayFromDataObject(NULL, &IID_IShellItemArray, NULL);
3450 }
3451 hr = pSHCreateShellItemArrayFromDataObject(NULL, &IID_IShellItemArray, (void**)&psia);
3452 ok(hr == E_INVALIDARG, "Got 0x%08x\n", hr);
3453
3454 hr = IShellFolder_CreateViewObject(psf, NULL, &IID_IShellView, (void**)&psv);
3455 ok(hr == S_OK, "got 0x%08x\n", hr);
3456 if(SUCCEEDED(hr))
3457 {
3458 IEnumIDList *peidl;
3459 IDataObject *pdo;
3460 SHCONTF enum_flags;
3461
3462 enum_flags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS | SHCONTF_INCLUDEHIDDEN;
3463 hr = IShellFolder_EnumObjects(psf, NULL, enum_flags, &peidl);
3464 ok(hr == S_OK, "got 0x%08x\n", hr);
3465 if(SUCCEEDED(hr))
3466 {
3467 LPITEMIDLIST apidl[5];
3468 UINT count, i;
3469
3470 for(count = 0; count < 5; count++)
3471 if(IEnumIDList_Next(peidl, 1, &apidl[count], NULL) != S_OK)
3472 break;
3473 ok(count == 5, "Got %d\n", count);
3474
3475 if(count)
3476 {
3477 hr = IShellFolder_GetUIObjectOf(psf, NULL, count, (LPCITEMIDLIST*)apidl,
3478 &IID_IDataObject, NULL, (void**)&pdo);
3479 ok(hr == S_OK, "Got 0x%08x\n", hr);
3480 if(SUCCEEDED(hr))
3481 {
3482 hr = pSHCreateShellItemArrayFromDataObject(pdo, &IID_IShellItemArray,
3483 (void**)&psia);
3484 ok(hr == S_OK, "Got 0x%08x\n", hr);
3485 if(SUCCEEDED(hr))
3486 {
3487 UINT count_sia, i;
3488 hr = IShellItemArray_GetCount(psia, &count_sia);
3489 ok(hr == S_OK, "Got 0x%08x\n", hr);
3490 ok(count_sia == count, "Counts differ (%d, %d)\n", count, count_sia);
3491 for(i = 0; i < count_sia; i++)
3492 {
3493 LPITEMIDLIST pidl_abs = ILCombine(pidl_testdir, apidl[i]);
3494 IShellItem *psi;
3495 hr = IShellItemArray_GetItemAt(psia, i, &psi);
3496 ok(hr == S_OK, "Got 0x%08x\n", hr);
3497 if(SUCCEEDED(hr))
3498 {
3499 LPITEMIDLIST pidl;
3500 hr = pSHGetIDListFromObject((IUnknown*)psi, &pidl);
3501 ok(hr == S_OK, "Got 0x%08x\n", hr);
3502 ok(pidl != NULL, "pidl as NULL.\n");
3503 ok(ILIsEqual(pidl, pidl_abs), "pidls differ.\n");
3504 ILFree(pidl);
3505 IShellItem_Release(psi);
3506 }
3507 ILFree(pidl_abs);
3508 }
3509
3510 IShellItemArray_Release(psia);
3511 }
3512
3513 IDataObject_Release(pdo);
3514 }
3515 for(i = 0; i < count; i++)
3516 ILFree(apidl[i]);
3517 }
3518 else
3519 skip("No files found - skipping test.\n");
3520
3521 IEnumIDList_Release(peidl);
3522 }
3523 IShellView_Release(psv);
3524 }
3525 }
3526 else
3527 skip("No SHCreateShellItemArrayFromDataObject.\n");
3528
3529 if(pSHCreateShellItemArrayFromIDLists)
3530 {
3531 WCHAR test1W[] = {'t','e','s','t','1','.','t','x','t',0};
3532 WCHAR test1pathW[MAX_PATH];
3533 LPITEMIDLIST pidltest1;
3534 LPCITEMIDLIST pidl_array[2];
3535
3536 if(0)
3537 {
3538 /* Crashes */
3539 hr = pSHCreateShellItemArrayFromIDLists(0, NULL, NULL);
3540 }
3541
3542 psia = (void*)0xdeadbeef;
3543 hr = pSHCreateShellItemArrayFromIDLists(0, NULL, &psia);
3544 ok(hr == E_INVALIDARG, "Got 0x%08x\n", hr);
3545 ok(psia == NULL, "Got %p\n", psia);
3546
3547 psia = (void*)0xdeadbeef;
3548 hr = pSHCreateShellItemArrayFromIDLists(0, pidl_array, &psia);
3549 ok(hr == E_INVALIDARG, "Got 0x%08x\n", hr);
3550 ok(psia == NULL, "Got %p\n", psia);
3551
3552 psia = (void*)0xdeadbeef;
3553 pidl_array[0] = NULL;
3554 hr = pSHCreateShellItemArrayFromIDLists(1, pidl_array, &psia);
3555 todo_wine ok(hr == E_OUTOFMEMORY, "Got 0x%08x\n", hr);
3556 ok(psia == NULL, "Got %p\n", psia);
3557
3558 psia = (void*)0xdeadbeef;
3559 pidl_array[0] = pidl_testdir;
3560 pidl_array[1] = NULL;
3561 hr = pSHCreateShellItemArrayFromIDLists(2, pidl_array, &psia);
3562 todo_wine ok(hr == S_OK || broken(hr == E_INVALIDARG) /* Vista */, "Got 0x%08x\n", hr);
3563 todo_wine ok(psia != NULL || broken(psia == NULL) /* Vista */, "Got %p\n", psia);
3564 if(SUCCEEDED(hr))
3565 {
3566 IShellItem *psi;
3567 UINT count = 0;
3568
3569 hr = IShellItemArray_GetCount(psia, &count);
3570 ok(hr == S_OK, "Got 0x%08x\n", hr);
3571 ok(count == 2, "Got %d\n", count);
3572
3573 hr = IShellItemArray_GetItemAt(psia, 0, &psi);
3574 ok(hr == S_OK, "Got 0x%08x\n", hr);
3575 if(SUCCEEDED(hr))
3576 {
3577 LPWSTR path;
3578 hr = IShellItem_GetDisplayName(psi, SIGDN_DESKTOPABSOLUTEPARSING, &path);
3579 ok(hr == S_OK, "Got 0x%08x\n", hr);
3580 ok(!lstrcmpW(path, cTestDirW), "Got %s\n", wine_dbgstr_w(path));
3581 if(SUCCEEDED(hr))
3583
3584 IShellItem_Release(psi);
3585 }
3586
3587 hr = IShellItemArray_GetItemAt(psia, 1, &psi);
3588 ok(hr == S_OK, "Got 0x%08x\n", hr);
3589 if(SUCCEEDED(hr))
3590 {
3591 LPWSTR path;
3592 WCHAR desktoppath[MAX_PATH];
3593 BOOL result;
3594
3596 ok(result, "SHGetSpecialFolderPathW(CSIDL_DESKTOPDIRECTORY) failed! %u\n", GetLastError());
3597
3598 hr = IShellItem_GetDisplayName(psi, SIGDN_DESKTOPABSOLUTEPARSING, &path);
3599 ok(hr == S_OK, "Got 0x%08x\n", hr);
3600 ok(!lstrcmpW(path, desktoppath), "Got %s\n", wine_dbgstr_w(path));
3601 if(SUCCEEDED(hr))
3603
3604 IShellItem_Release(psi);
3605 }
3606
3607
3608 IShellItemArray_Release(psia);
3609 }
3610
3611
3612 /* Single pidl */
3613 psia = (void*)0xdeadbeef;
3614 pidl_array[0] = pidl_testdir;
3615 hr = pSHCreateShellItemArrayFromIDLists(1, pidl_array, &psia);
3616 ok(hr == S_OK, "Got 0x%08x\n", hr);
3617 if(SUCCEEDED(hr))
3618 {
3619 IShellItem *psi;
3620 UINT count = 0;
3621
3622 hr = IShellItemArray_GetCount(psia, &count);
3623 ok(hr == S_OK, "Got 0x%08x\n", hr);
3624 ok(count == 1, "Got %d\n", count);
3625
3626 hr = IShellItemArray_GetItemAt(psia, 0, &psi);
3627 ok(hr == S_OK, "Got 0x%08x\n", hr);
3628 if(SUCCEEDED(hr))
3629 {
3630 LPWSTR path;
3631 hr = IShellItem_GetDisplayName(psi, SIGDN_DESKTOPABSOLUTEPARSING, &path);
3632 ok(hr == S_OK, "Got 0x%08x\n", hr);
3633 ok(!lstrcmpW(path, cTestDirW), "Got %s\n", wine_dbgstr_w(path));
3634 if(SUCCEEDED(hr))
3636
3637 IShellItem_Release(psi);
3638 }
3639
3640 IShellItemArray_Release(psia);
3641 }
3642
3643
3644 lstrcpyW(test1pathW, cTestDirW);
3645 myPathAddBackslashW(test1pathW);
3646 lstrcatW(test1pathW, test1W);
3647
3648 SHGetDesktopFolder(&pdesktopsf);
3649
3650 hr = IShellFolder_ParseDisplayName(pdesktopsf, NULL, NULL, test1pathW, NULL, &pidltest1, NULL);
3651 ok(hr == S_OK, "Got 0x%08x\n", hr);
3652 if(SUCCEEDED(hr))
3653 {
3654 psia = (void*)0xdeadbeef;
3655 pidl_array[0] = pidl_testdir;
3656 pidl_array[1] = pidltest1;
3657 hr = pSHCreateShellItemArrayFromIDLists(2, pidl_array, &psia);
3658 ok(hr == S_OK, "Got 0x%08x\n", hr);
3659 if(SUCCEEDED(hr))
3660 {
3661 IShellItem *psi;
3662 UINT count = 0;
3663
3664 hr = IShellItemArray_GetCount(psia, &count);
3665 ok(hr == S_OK, "Got 0x%08x\n", hr);
3666 ok(count == 2, "Got %d\n", count);
3667
3668 hr = IShellItemArray_GetItemAt(psia, 0, &psi);
3669 ok(hr == S_OK, "Got 0x%08x\n", hr);
3670 if(SUCCEEDED(hr))
3671 {
3672 LPWSTR path;
3673 hr = IShellItem_GetDisplayName(psi, SIGDN_DESKTOPABSOLUTEPARSING, &path);
3674 ok(hr == S_OK, "Got 0x%08x\n", hr);
3675 ok(!lstrcmpW(path, cTestDirW), "Got %s\n", wine_dbgstr_w(path));
3676 if(SUCCEEDED(hr))
3678
3679 IShellItem_Release(psi);
3680 }
3681
3682 hr = IShellItemArray_GetItemAt(psia, 1, &psi);
3683 ok(hr == S_OK, "Got 0x%08x\n", hr);
3684 if(SUCCEEDED(hr))
3685 {
3686 LPWSTR path;
3687 hr = IShellItem_GetDisplayName(psi, SIGDN_DESKTOPABSOLUTEPARSING, &path);
3688 ok(hr == S_OK, "Got 0x%08x\n", hr);
3689 ok(!lstrcmpW(path, test1pathW), "Got %s\n", wine_dbgstr_w(path));
3690 if(SUCCEEDED(hr))
3692
3693 IShellItem_Release(psi);
3694 }
3695
3696
3697 IShellItemArray_Release(psia);
3698 }
3699
3700 ILFree(pidltest1);
3701 }
3702
3703 IShellFolder_Release(pdesktopsf);
3704 }
3705 else
3706 skip("No SHCreateShellItemArrayFromIDLists.\n");
3707
3708 IShellFolder_Release(psf);
3709 ILFree(pidl_testdir);
3710 Cleanup();
3711}
static SHCONTF
Definition: ordinal.c:61
WCHAR path[MAX_PATH]
Definition: shlfolder.c:182
#define E_POINTER
Definition: winerror.h:3480

Referenced by START_TEST().

◆ test_ShellItemArrayEnumItems()

static void test_ShellItemArrayEnumItems ( void  )
static

Definition at line 3713 of file shlfolder.c.

3714{
3715 IShellFolder *pdesktopsf, *psf;
3716 IEnumIDList *peidl;
3717 WCHAR cTestDirW[MAX_PATH];
3718 HRESULT hr;
3719 LPITEMIDLIST pidl_testdir;
3720 static const WCHAR testdirW[] = {'t','e','s','t','d','i','r',0};
3721
3722 if(!pSHCreateShellItemArray)
3723 {
3724 win_skip("No SHCreateShellItemArray, skipping test...\n");
3725 return;
3726 }
3727
3729
3730 SHGetDesktopFolder(&pdesktopsf);
3731
3732 GetCurrentDirectoryW(MAX_PATH, cTestDirW);
3733 myPathAddBackslashW(cTestDirW);
3734 lstrcatW(cTestDirW, testdirW);
3735
3736 hr = IShellFolder_ParseDisplayName(pdesktopsf, NULL, NULL, cTestDirW, NULL, &pidl_testdir, 0);
3737 ok(hr == S_OK, "got 0x%08x\n", hr);
3738 if(SUCCEEDED(hr))
3739 {
3740 hr = IShellFolder_BindToObject(pdesktopsf, pidl_testdir, NULL, (REFIID)&IID_IShellFolder,
3741 (void**)&psf);
3742 ok(hr == S_OK, "Got 0x%08x\n", hr);
3743 ILFree(pidl_testdir);
3744 }
3745 IShellFolder_Release(pdesktopsf);
3746 if (FAILED(hr)) return;
3747
3748 hr = IShellFolder_EnumObjects(psf, NULL, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &peidl);
3749 ok(hr == S_OK, "Got %08x\n", hr);
3750 if(SUCCEEDED(hr))
3751 {
3752 IShellItemArray *psia;
3753 LPITEMIDLIST apidl[5];
3754 UINT done, numitems, i;
3755
3756 for(done = 0; done < 5; done++)
3757 if(IEnumIDList_Next(peidl, 1, &apidl[done], NULL) != S_OK)
3758 break;
3759 ok(done == 5, "Got %d pidls\n", done);
3760 IEnumIDList_Release(peidl);
3761
3762 /* Create a ShellItemArray */
3763 hr = pSHCreateShellItemArray(NULL, psf, done, (LPCITEMIDLIST*)apidl, &psia);
3764 ok(hr == S_OK, "Got 0x%08x\n", hr);
3765 if(SUCCEEDED(hr))
3766 {
3767 IEnumShellItems *iesi;
3768 IShellItem *my_array[10];
3769 ULONG fetched;
3770
3771 IShellItemArray_GetCount(psia, &numitems);
3772 ok(numitems == done, "Got %d, expected %d\n", numitems, done);
3773
3774 iesi = NULL;
3775 hr = IShellItemArray_EnumItems(psia, &iesi);
3776 ok(hr == S_OK, "Got 0x%08x\n", hr);
3777 ok(iesi != NULL, "Got NULL\n");
3778 if(SUCCEEDED(hr))
3779 {
3780 IEnumShellItems *iesi2;
3781
3782 /* This should fail according to the documentation and Win7+ */
3783 for(i = 0; i < 10; i++) my_array[i] = (void*)0xdeadbeef;
3784 hr = IEnumShellItems_Next(iesi, 2, my_array, NULL);
3785 ok(hr == E_INVALIDARG || broken(hr == S_OK) /* Vista */, "Got 0x%08x\n", hr);
3786 for(i = 0; i < 2; i++)
3787 {
3788 ok(my_array[i] == (void*)0xdeadbeef ||
3789 broken(my_array[i] != (void*)0xdeadbeef && my_array[i] != NULL), /* Vista */
3790 "Got %p (%d)\n", my_array[i], i);
3791
3792 if(my_array[i] != (void*)0xdeadbeef)
3793 IShellItem_Release(my_array[i]);
3794 }
3795 ok(my_array[2] == (void*)0xdeadbeef, "Got %p\n", my_array[2]);
3796
3797 IEnumShellItems_Reset(iesi);
3798 for(i = 0; i < 10; i++) my_array[i] = (void*)0xdeadbeef;
3799 hr = IEnumShellItems_Next(iesi, 1, my_array, NULL);
3800 ok(hr == S_OK, "Got 0x%08x\n", hr);
3801 ok(my_array[0] != NULL && my_array[0] != (void*)0xdeadbeef, "Got %p\n", my_array[0]);
3802 if(my_array[0] != NULL && my_array[0] != (void*)0xdeadbeef)
3803 IShellItem_Release(my_array[0]);
3804 ok(my_array[1] == (void*)0xdeadbeef, "Got %p\n", my_array[1]);
3805
3806 IEnumShellItems_Reset(iesi);
3807 fetched = 0;
3808 for(i = 0; i < 10; i++) my_array[i] = (void*)0xdeadbeef;
3809 hr = IEnumShellItems_Next(iesi, numitems, my_array, &fetched);
3810 ok(hr == S_OK, "Got 0x%08x\n", hr);
3811 ok(fetched == numitems, "Got %d\n", fetched);
3812 for(i = 0;i < numitems; i++)
3813 {
3814 ok(my_array[i] != NULL && my_array[i] != (void*)0xdeadbeef,
3815 "Got %p at %d\n", my_array[i], i);
3816
3817 if(my_array[i] != NULL && my_array[i] != (void*)0xdeadbeef)
3818 IShellItem_Release(my_array[i]);
3819 }
3820 ok(my_array[i] == (void*)0xdeadbeef, "Got %p\n", my_array[i]);
3821
3822 /* Compare all the items */
3823 IEnumShellItems_Reset(iesi);
3824 for(i = 0; i < numitems; i++)
3825 {
3826 IShellItem *psi;
3827 int order;
3828
3829 hr = IShellItemArray_GetItemAt(psia, i, &psi);
3830 ok(hr == S_OK, "Got 0x%08x\n", hr);
3831 hr = IEnumShellItems_Next(iesi, 1, my_array, &fetched);
3832 ok(hr == S_OK, "Got 0x%08x\n", hr);
3833 ok(fetched == 1, "Got %d\n", fetched);
3834
3835 hr = IShellItem_Compare(psi, my_array[0], 0, &order);
3836 ok(hr == S_OK, "Got 0x%08x\n", hr);
3837 ok(order == 0, "Got %d\n", order);
3838
3839 IShellItem_Release(psi);
3840 IShellItem_Release(my_array[0]);
3841 }
3842
3843 my_array[0] = (void*)0xdeadbeef;
3844 hr = IEnumShellItems_Next(iesi, 1, my_array, &fetched);
3845 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
3846 ok(fetched == 0, "Got %d\n", fetched);
3847 ok(my_array[0] == (void*)0xdeadbeef, "Got %p\n", my_array[0]);
3848
3849 /* Cloning not implemented anywhere */
3850 iesi2 = (void*)0xdeadbeef;
3851 hr = IEnumShellItems_Clone(iesi, &iesi2);
3852 ok(hr == E_NOTIMPL, "Got 0x%08x\n", hr);
3853 ok(iesi2 == NULL || broken(iesi2 == (void*)0xdeadbeef) /* Vista */, "Got %p\n", iesi2);
3854
3855 IEnumShellItems_Release(iesi);
3856 }
3857
3858 IShellItemArray_Release(psia);
3859 }
3860
3861 for(i = 0; i < done; i++)
3862 ILFree(apidl[i]);
3863 }
3864
3865 IShellFolder_Release(psf);
3866}

Referenced by START_TEST().

◆ test_ShellItemArrayGetAttributes()

static void test_ShellItemArrayGetAttributes ( void  )
static

Definition at line 4125 of file shlfolder.c.

4126{
4127 IShellItemArray *psia_files, *psia_folders1, *psia_folders2, *psia_all;
4128 IShellFolder *pdesktopsf;
4129 LPCITEMIDLIST pidl_array[5];
4130 SFGAOF attr;
4131 HRESULT hr;
4132 WCHAR curdirW[MAX_PATH];
4134 UINT i;
4135 static const WCHAR testdir1W[] = {'t','e','s','t','d','i','r',0};
4136 static const WCHAR testdir2W[] = {'t','e','s','t','d','i','r','\\','t','e','s','t','d','i','r','2',0};
4137 static const WCHAR testdir3W[] = {'t','e','s','t','d','i','r','\\','t','e','s','t','d','i','r','3',0};
4138 static const WCHAR testfile1W[] = {'t','e','s','t','d','i','r','\\','t','e','s','t','1','.','t','x','t',0};
4139 static const WCHAR testfile2W[] = {'t','e','s','t','d','i','r','\\','t','e','s','t','2','.','t','x','t',0};
4140 static const WCHAR *testfilesW[5] = { testdir1W, testdir2W, testdir3W, testfile1W, testfile2W };
4141
4142 if(!pSHCreateShellItemArrayFromShellItem)
4143 {
4144 win_skip("No SHCreateShellItemArrayFromShellItem, skipping test...\n");
4145 return;
4146 }
4147
4149 CreateDirectoryA(".\\testdir\\testdir3", NULL);
4150
4151 SHGetDesktopFolder(&pdesktopsf);
4152
4154 myPathAddBackslashW(curdirW);
4155
4156 for(i = 0; i < 5; i++)
4157 {
4158 lstrcpyW(buf, curdirW);
4159 lstrcatW(buf, testfilesW[i]);
4160 hr = IShellFolder_ParseDisplayName(pdesktopsf, NULL, NULL, buf, NULL, (LPITEMIDLIST*)&pidl_array[i], NULL);
4161 ok(hr == S_OK, "got 0x%08x\n", hr);
4162 }
4163 IShellFolder_Release(pdesktopsf);
4164
4165 hr = pSHCreateShellItemArrayFromIDLists(2, pidl_array, &psia_folders1);
4166 ok(hr == S_OK, "got 0x%08x\n", hr);
4167 hr = pSHCreateShellItemArrayFromIDLists(2, &pidl_array[1], &psia_folders2);
4168 ok(hr == S_OK, "got 0x%08x\n", hr);
4169 hr = pSHCreateShellItemArrayFromIDLists(2, &pidl_array[3], &psia_files);
4170 ok(hr == S_OK, "got 0x%08x\n", hr);
4171 hr = pSHCreateShellItemArrayFromIDLists(4, &pidl_array[1], &psia_all); /* All except the first */
4172 ok(hr == S_OK, "got 0x%08x\n", hr);
4173
4174 for(i = 0; i < 5; i++)
4175 ILFree((LPITEMIDLIST)pidl_array[i]);
4176
4177 /* [testfolder/, testfolder/testfolder2] seems to break in Vista */
4178 attr = 0xdeadbeef;
4179 hr = IShellItemArray_GetAttributes(psia_folders1, SIATTRIBFLAGS_AND, SFGAO_FOLDER, &attr);
4180 ok(hr == S_OK || broken(hr == E_UNEXPECTED) /* Vista */, "Got 0x%08x\n", hr);
4181 ok(attr == SFGAO_FOLDER || broken(attr == 0) /* Vista */, "Got 0x%08x\n", attr);
4182 attr = 0xdeadbeef;
4183 hr = IShellItemArray_GetAttributes(psia_folders1, SIATTRIBFLAGS_OR, SFGAO_FOLDER, &attr);
4184 ok(hr == S_OK || broken(hr == E_UNEXPECTED) /* Vista */, "Got 0x%08x\n", hr);
4185 ok(attr == SFGAO_FOLDER || broken(attr == 0) /* Vista */, "Got 0x%08x\n", attr);
4186
4187 /* [testfolder/testfolder2, testfolder/testfolder3] works */
4188 attr = 0xdeadbeef;
4189 hr = IShellItemArray_GetAttributes(psia_folders2, SIATTRIBFLAGS_AND, SFGAO_FOLDER, &attr);
4190 ok(hr == S_OK, "Got 0x%08x\n", hr);
4191 ok(attr == SFGAO_FOLDER, "Got 0x%08x\n", attr);
4192 attr = 0xdeadbeef;
4193 hr = IShellItemArray_GetAttributes(psia_files, SIATTRIBFLAGS_AND, SFGAO_FOLDER, &attr);
4194 ok(hr == S_FALSE || broken(hr == S_OK) /* Vista */, "Got 0x%08x\n", hr);
4195 ok(attr == 0, "Got 0x%08x\n", attr);
4196 attr = 0xdeadbeef;
4197 hr = IShellItemArray_GetAttributes(psia_all, SIATTRIBFLAGS_AND, SFGAO_FOLDER, &attr);
4198 ok(hr == S_FALSE || broken(hr == S_OK) /* Vista */, "Got 0x%08x\n", hr);
4199 ok(attr == 0, "Got 0x%08x\n", attr);
4200 attr = 0xdeadbeef;
4201 hr = IShellItemArray_GetAttributes(psia_folders2, SIATTRIBFLAGS_OR, SFGAO_FOLDER, &attr);
4202 ok(hr == S_OK, "Got 0x%08x\n", hr);
4203 ok(attr == SFGAO_FOLDER, "Got 0x%08x\n", attr);
4204 attr = 0xdeadbeef;
4205 hr = IShellItemArray_GetAttributes(psia_files, SIATTRIBFLAGS_OR, SFGAO_FOLDER, &attr);
4206 ok(hr == S_FALSE || broken(hr == S_OK) /* Vista */, "Got 0x%08x\n", hr);
4207 ok(attr == 0, "Got 0x%08x\n", attr);
4208 attr = 0xdeadbeef;
4209 hr = IShellItemArray_GetAttributes(psia_all, SIATTRIBFLAGS_OR, SFGAO_FOLDER, &attr);
4210 ok(hr == S_OK, "Got 0x%08x\n", hr);
4211 ok(attr == SFGAO_FOLDER, "Got 0x%08x\n", attr);
4212
4213 IShellItemArray_Release(psia_folders1);
4214 IShellItemArray_Release(psia_folders2);
4215 IShellItemArray_Release(psia_files);
4216 IShellItemArray_Release(psia_all);
4217
4218 RemoveDirectoryA(".\\testdir\\testdir3");
4219 Cleanup();
4220}
#define E_UNEXPECTED
Definition: winerror.h:3528

Referenced by START_TEST().

◆ test_ShellItemBindToHandler()

static void test_ShellItemBindToHandler ( void  )
static

Definition at line 3869 of file shlfolder.c.

3870{
3871 IShellItem *psi;
3872 LPITEMIDLIST pidl_desktop;
3873 HRESULT hr;
3874
3875 if(!pSHCreateShellItem)
3876 {
3877 skip("SHCreateShellItem missing.\n");
3878 return;
3879 }
3880
3882 ok(hr == S_OK, "Got 0x%08x\n", hr);
3883 if(SUCCEEDED(hr))
3884 {
3885 hr = pSHCreateShellItem(NULL, NULL, pidl_desktop, &psi);
3886 ok(hr == S_OK, "Got 0x%08x\n", hr);
3887 }
3888 if(SUCCEEDED(hr))
3889 {
3890 IPersistFolder2 *ppf2;
3891 IUnknown *punk;
3892
3893 if(0)
3894 {
3895 /* Crashes under Windows 7 */
3896 IShellItem_BindToHandler(psi, NULL, NULL, NULL, NULL);
3897 IShellItem_BindToHandler(psi, NULL, &IID_IUnknown, &IID_IUnknown, NULL);
3898 }
3899 hr = IShellItem_BindToHandler(psi, NULL, &IID_IUnknown, &IID_IUnknown, (void**)&punk);
3900 ok(hr == MK_E_NOOBJECT, "Got 0x%08x\n", hr);
3901
3902 /* BHID_SFObject */
3903 hr = IShellItem_BindToHandler(psi, NULL, &BHID_SFObject, &IID_IShellFolder, (void**)&punk);
3904 ok(hr == S_OK, "Got 0x%08x\n", hr);
3905 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3906 hr = IShellItem_BindToHandler(psi, NULL, &BHID_SFObject, &IID_IPersistFolder2, (void**)&ppf2);
3907 ok(hr == S_OK, "Got 0x%08x\n", hr);
3908 if(SUCCEEDED(hr))
3909 {
3910 LPITEMIDLIST pidl_tmp;
3911 hr = IPersistFolder2_GetCurFolder(ppf2, &pidl_tmp);
3912 ok(hr == S_OK, "Got 0x%08x\n", hr);
3913 if(SUCCEEDED(hr))
3914 {
3915 ok(ILIsEqual(pidl_desktop, pidl_tmp), "Pidl not equal (%p, %p)\n", pidl_desktop, pidl_tmp);
3916 ILFree(pidl_tmp);
3917 }
3918 IPersistFolder2_Release(ppf2);
3919 }
3920
3921 /* BHID_SFUIObject */
3922 hr = IShellItem_BindToHandler(psi, NULL, &BHID_SFUIObject, &IID_IDataObject, (void**)&punk);
3923 ok(hr == S_OK || broken(hr == E_NOINTERFACE /* XP */), "Got 0x%08x\n", hr);
3924 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3925 hr = IShellItem_BindToHandler(psi, NULL, &BHID_SFUIObject, &IID_IContextMenu, (void**)&punk);
3926 ok(hr == S_OK || broken(hr == E_NOINTERFACE /* XP */), "Got 0x%08x\n", hr);
3927 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3928
3929 /* BHID_DataObject */
3930 hr = IShellItem_BindToHandler(psi, NULL, &BHID_DataObject, &IID_IDataObject, (void**)&punk);
3931 ok(hr == S_OK || broken(hr == MK_E_NOOBJECT /* XP */), "Got 0x%08x\n", hr);
3932 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3933
3934 todo_wine
3935 {
3936 /* BHID_SFViewObject */
3937 hr = IShellItem_BindToHandler(psi, NULL, &BHID_SFViewObject, &IID_IShellView, (void**)&punk);
3938 ok(hr == S_OK, "Got 0x%08x\n", hr);
3939 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3940 hr = IShellItem_BindToHandler(psi, NULL, &BHID_SFViewObject, &IID_IShellFolderView, (void**)&punk);
3941 ok(hr == E_NOINTERFACE, "Got 0x%08x\n", hr);
3942 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3943
3944 /* BHID_Storage */
3945 hr = IShellItem_BindToHandler(psi, NULL, &BHID_Storage, &IID_IStream, (void**)&punk);
3946 ok(hr == E_NOINTERFACE, "Got 0x%08x\n", hr);
3947 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3948 hr = IShellItem_BindToHandler(psi, NULL, &BHID_Storage, &IID_IUnknown, (void**)&punk);
3949 ok(hr == S_OK, "Got 0x%08x\n", hr);
3950 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3951
3952 /* BHID_Stream */
3953 hr = IShellItem_BindToHandler(psi, NULL, &BHID_Stream, &IID_IStream, (void**)&punk);
3954 ok(hr == E_NOINTERFACE, "Got 0x%08x\n", hr);
3955 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3956 hr = IShellItem_BindToHandler(psi, NULL, &BHID_Stream, &IID_IUnknown, (void**)&punk);
3957 ok(hr == S_OK, "Got 0x%08x\n", hr);
3958 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3959
3960 /* BHID_StorageEnum */
3961 hr = IShellItem_BindToHandler(psi, NULL, &BHID_StorageEnum, &IID_IEnumShellItems, (void**)&punk);
3962 ok(hr == S_OK, "Got 0x%08x\n", hr);
3963 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3964
3965 /* BHID_Transfer
3966 ITransferSource and ITransferDestination are accessible starting from Vista, IUnknown is
3967 supported starting from Win8. */
3968 hr = IShellItem_BindToHandler(psi, NULL, &BHID_Transfer, &IID_ITransferSource, (void**)&punk);
3969 ok(hr == S_OK || broken(FAILED(hr)) /* pre-Vista */, "Got 0x%08x\n", hr);
3970 if(SUCCEEDED(hr))
3971 {
3972 IUnknown_Release(punk);
3973
3974 hr = IShellItem_BindToHandler(psi, NULL, &BHID_Transfer, &IID_ITransferDestination, (void**)&punk);
3975 ok(hr == S_OK, "Got 0x%08x\n", hr);
3976 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3977
3978 hr = IShellItem_BindToHandler(psi, NULL, &BHID_Transfer, &IID_IUnknown, (void**)&punk);
3979 ok(hr == S_OK || broken(hr == E_NOINTERFACE) /* pre-Win8 */, "Got 0x%08x\n", hr);
3980 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3981 }
3982
3983 /* BHID_EnumItems */
3984 hr = IShellItem_BindToHandler(psi, NULL, &BHID_EnumItems, &IID_IEnumShellItems, (void**)&punk);
3985 ok(hr == S_OK || broken(hr == MK_E_NOOBJECT /* XP */), "Got 0x%08x\n", hr);
3986 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3987
3988 /* BHID_Filter */
3989 hr = IShellItem_BindToHandler(psi, NULL, &BHID_Filter, &IID_IUnknown, (void**)&punk);
3990 ok(hr == S_OK || broken(hr == MK_E_NOOBJECT /* XP */), "Got 0x%08x\n", hr);
3991 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3992
3993 /* BHID_LinkTargetItem */
3994 hr = IShellItem_BindToHandler(psi, NULL, &BHID_LinkTargetItem, &IID_IShellItem, (void**)&punk);
3995 ok(hr == E_NOINTERFACE || broken(hr == E_INVALIDARG /* XP */), "Got 0x%08x\n", hr);
3996 if(SUCCEEDED(hr)) IUnknown_Release(punk);
3997 hr = IShellItem_BindToHandler(psi, NULL, &BHID_LinkTargetItem, &IID_IUnknown, (void**)&punk);
3998 ok(hr == E_NOINTERFACE || broken(hr == E_INVALIDARG /* XP */), "Got 0x%08x\n", hr);
3999 if(SUCCEEDED(hr)) IUnknown_Release(punk);
4000
4001 /* BHID_PropertyStore */
4002 hr = IShellItem_BindToHandler(psi, NULL, &BHID_PropertyStore, &IID_IPropertyStore, (void**)&punk);
4003 ok(hr == E_NOINTERFACE || broken(hr == MK_E_NOOBJECT /* XP */), "Got 0x%08x\n", hr);
4004 if(SUCCEEDED(hr)) IUnknown_Release(punk);
4005 hr = IShellItem_BindToHandler(psi, NULL, &BHID_PropertyStore, &IID_IPropertyStoreFactory, (void**)&punk);
4006 ok(hr == E_NOINTERFACE || broken(hr == MK_E_NOOBJECT /* XP */), "Got 0x%08x\n", hr);
4007 if(SUCCEEDED(hr)) IUnknown_Release(punk);
4008
4009 /* BHID_ThumbnailHandler */
4010 hr = IShellItem_BindToHandler(psi, NULL, &BHID_ThumbnailHandler, &IID_IUnknown, (void**)&punk);
4011 ok(hr == E_INVALIDARG || broken(hr == MK_E_NOOBJECT /* XP */), "Got 0x%08x\n", hr);
4012 if(SUCCEEDED(hr)) IUnknown_Release(punk);
4013
4014 /* BHID_AssociationArray */
4015 hr = IShellItem_BindToHandler(psi, NULL, &BHID_AssociationArray, &IID_IQueryAssociations, (void**)&punk);
4016 ok(hr == S_OK || broken(hr == MK_E_NOOBJECT /* XP */), "Got 0x%08x\n", hr);
4017 if(SUCCEEDED(hr)) IUnknown_Release(punk);
4018
4019 /* BHID_EnumAssocHandlers */
4020 hr = IShellItem_BindToHandler(psi, NULL, &BHID_EnumAssocHandlers, &IID_IUnknown, (void**)&punk);
4021 ok(hr == E_NOINTERFACE || broken(hr == MK_E_NOOBJECT /* XP */), "Got 0x%08x\n", hr);
4022 if(SUCCEEDED(hr)) IUnknown_Release(punk);
4023 }
4024
4025 IShellItem_Release(psi);
4026 }
4027 else
4028 skip("Failed to create ShellItem.\n");
4029
4030 ILFree(pidl_desktop);
4031}
_In_opt_ IUnknown * punk
Definition: shlwapi.h:158
#define MK_E_NOOBJECT
Definition: winerror.h:3898

Referenced by START_TEST().

◆ test_ShellItemCompare()

static void test_ShellItemCompare ( void  )
static

Definition at line 2746 of file shlfolder.c.

2747{
2748 IShellItem *psi[9]; /* a\a, a\b, a\c, b\a, .. */
2749 IShellItem *psi_a = NULL, *psi_b = NULL, *psi_c = NULL;
2750 IShellFolder *psf_desktop, *psf_current;
2751 LPITEMIDLIST pidl_cwd;
2752 WCHAR curdirW[MAX_PATH];
2753 BOOL failed;
2754 HRESULT hr;
2755 static const WCHAR filesW[][9] = {
2756 {'a','\\','a',0}, {'a','\\','b',0}, {'a','\\','c',0},
2757 {'b','\\','a',0}, {'b','\\','b',0}, {'b','\\','c',0},
2758 {'c','\\','a',0}, {'c','\\','b',0}, {'c','\\','c',0} };
2759 int order;
2760 UINT i;
2761
2762 if(!pSHCreateShellItem)
2763 {
2764 win_skip("SHCreateShellItem missing.\n");
2765 return;
2766 }
2767
2769 if (!curdirW[0])
2770 {
2771 skip("Failed to get current directory, skipping.\n");
2772 return;
2773 }
2774
2775 CreateDirectoryA(".\\a", NULL);
2776 CreateDirectoryA(".\\b", NULL);
2777 CreateDirectoryA(".\\c", NULL);
2778 CreateTestFile(".\\a\\a");
2779 CreateTestFile(".\\a\\b");
2780 CreateTestFile(".\\a\\c");
2781 CreateTestFile(".\\b\\a");
2782 CreateTestFile(".\\b\\b");
2783 CreateTestFile(".\\b\\c");
2784 CreateTestFile(".\\c\\a");
2785 CreateTestFile(".\\c\\b");
2786 CreateTestFile(".\\c\\c");
2787
2788 SHGetDesktopFolder(&psf_desktop);
2789 hr = IShellFolder_ParseDisplayName(psf_desktop, NULL, NULL, curdirW, NULL, &pidl_cwd, NULL);
2790 ok(SUCCEEDED(hr), "ParseDisplayName returned %x\n", hr);
2791 hr = IShellFolder_BindToObject(psf_desktop, pidl_cwd, NULL, &IID_IShellFolder, (void**)&psf_current);
2792 ok(SUCCEEDED(hr), "BindToObject returned %x\n", hr);
2793 IShellFolder_Release(psf_desktop);
2794 ILFree(pidl_cwd);
2795
2796 /* Generate ShellItems for the files */
2797 memset(&psi, 0, sizeof(psi));
2798 failed = FALSE;
2799 for(i = 0; i < 9; i++)
2800 {
2801 LPITEMIDLIST pidl_testfile = NULL;
2802
2803 hr = IShellFolder_ParseDisplayName(psf_current, NULL, NULL, (LPWSTR)filesW[i],
2804 NULL, &pidl_testfile, NULL);
2805 ok(SUCCEEDED(hr), "ParseDisplayName returned %x\n", hr);
2806 if(SUCCEEDED(hr))
2807 {
2808 hr = pSHCreateShellItem(NULL, NULL, pidl_testfile, &psi[i]);
2809 ok(hr == S_OK, "Got 0x%08x\n", hr);
2810 ILFree(pidl_testfile);
2811 }
2812 if(FAILED(hr)) failed = TRUE;
2813 }
2814 if(failed)
2815 {
2816 skip("Failed to create all shellitems.\n");
2817 goto cleanup;
2818 }
2819
2820 /* Generate ShellItems for the folders */
2821 hr = IShellItem_GetParent(psi[0], &psi_a);
2822 ok(hr == S_OK, "Got 0x%08x\n", hr);
2823 if(FAILED(hr)) failed = TRUE;
2824 hr = IShellItem_GetParent(psi[3], &psi_b);
2825 ok(hr == S_OK, "Got 0x%08x\n", hr);
2826 if(FAILED(hr)) failed = TRUE;
2827 hr = IShellItem_GetParent(psi[6], &psi_c);
2828 ok(hr == S_OK, "Got 0x%08x\n", hr);
2829 if(FAILED(hr)) failed = TRUE;
2830
2831 if(failed)
2832 {
2833 skip("Failed to create shellitems.\n");
2834 goto cleanup;
2835 }
2836
2837 if(0)
2838 {
2839 /* Crashes on native (win7, winxp) */
2840 IShellItem_Compare(psi_a, NULL, 0, NULL);
2841 IShellItem_Compare(psi_a, psi_b, 0, NULL);
2842 IShellItem_Compare(psi_a, NULL, 0, &order);
2843 }
2844
2845 /* Basics */
2846 for(i = 0; i < 9; i++)
2847 {
2848 hr = IShellItem_Compare(psi[i], psi[i], SICHINT_DISPLAY, &order);
2849 ok(hr == S_OK, "Got 0x%08x\n", hr);
2850 ok(order == 0, "Got order %d\n", order);
2851 hr = IShellItem_Compare(psi[i], psi[i], SICHINT_CANONICAL, &order);
2852 ok(hr == S_OK, "Got 0x%08x\n", hr);
2853 ok(order == 0, "Got order %d\n", order);
2854 hr = IShellItem_Compare(psi[i], psi[i], SICHINT_ALLFIELDS, &order);
2855 ok(hr == S_OK, "Got 0x%08x\n", hr);
2856 ok(order == 0, "Got order %d\n", order);
2857 }
2858
2859 /* Order */
2860 /* a\b:a\a , a\b:a\c, a\b:a\b */
2861 hr = IShellItem_Compare(psi[1], psi[0], SICHINT_DISPLAY, &order);
2862 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2863 ok(order == 1, "Got order %d\n", order);
2864 hr = IShellItem_Compare(psi[1], psi[2], SICHINT_DISPLAY, &order);
2865 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2866 ok(order == -1, "Got order %d\n", order);
2867 hr = IShellItem_Compare(psi[1], psi[1], SICHINT_DISPLAY, &order);
2868 ok(hr == S_OK, "Got 0x%08x\n", hr);
2869 ok(order == 0, "Got order %d\n", order);
2870
2871 /* b\b:a\b, b\b:c\b, b\b:c\b */
2872 hr = IShellItem_Compare(psi[4], psi[1], SICHINT_DISPLAY, &order);
2873 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2874 ok(order == 1, "Got order %d\n", order);
2875 hr = IShellItem_Compare(psi[4], psi[7], SICHINT_DISPLAY, &order);
2876 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2877 ok(order == -1, "Got order %d\n", order);
2878 hr = IShellItem_Compare(psi[4], psi[4], SICHINT_DISPLAY, &order);
2879 ok(hr == S_OK, "Got 0x%08x\n", hr);
2880 ok(order == 0, "Got order %d\n", order);
2881
2882 /* b:a\a, b:a\c, b:a\b */
2883 hr = IShellItem_Compare(psi_b, psi[0], SICHINT_DISPLAY, &order);
2884 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2885 todo_wine ok(order == 1, "Got order %d\n", order);
2886 hr = IShellItem_Compare(psi_b, psi[2], SICHINT_DISPLAY, &order);
2887 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2888 todo_wine ok(order == 1, "Got order %d\n", order);
2889 hr = IShellItem_Compare(psi_b, psi[1], SICHINT_DISPLAY, &order);
2890 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2891 todo_wine ok(order == 1, "Got order %d\n", order);
2892
2893 /* b:c\a, b:c\c, b:c\b */
2894 hr = IShellItem_Compare(psi_b, psi[6], SICHINT_DISPLAY, &order);
2895 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2896 ok(order == -1, "Got order %d\n", order);
2897 hr = IShellItem_Compare(psi_b, psi[8], SICHINT_DISPLAY, &order);
2898 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2899 ok(order == -1, "Got order %d\n", order);
2900 hr = IShellItem_Compare(psi_b, psi[7], SICHINT_DISPLAY, &order);
2901 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2902 ok(order == -1, "Got order %d\n", order);
2903
2904 /* a\b:a\a , a\b:a\c, a\b:a\b */
2905 hr = IShellItem_Compare(psi[1], psi[0], SICHINT_CANONICAL, &order);
2906 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2907 ok(order == 1, "Got order %d\n", order);
2908 hr = IShellItem_Compare(psi[1], psi[2], SICHINT_CANONICAL, &order);
2909 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2910 ok(order == -1, "Got order %d\n", order);
2911 hr = IShellItem_Compare(psi[1], psi[1], SICHINT_CANONICAL, &order);
2912 ok(hr == S_OK, "Got 0x%08x\n", hr);
2913 ok(order == 0, "Got order %d\n", order);
2914
2915 /* b\b:a\b, b\b:c\b, b\b:c\b */
2916 hr = IShellItem_Compare(psi[4], psi[1], SICHINT_CANONICAL, &order);
2917 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2918 ok(order == 1, "Got order %d\n", order);
2919 hr = IShellItem_Compare(psi[4], psi[7], SICHINT_CANONICAL, &order);
2920 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2921 ok(order == -1, "Got order %d\n", order);
2922 hr = IShellItem_Compare(psi[4], psi[4], SICHINT_CANONICAL, &order);
2923 ok(hr == S_OK, "Got 0x%08x\n", hr);
2924 ok(order == 0, "Got order %d\n", order);
2925
2926 /* b:a\a, b:a\c, b:a\b */
2927 hr = IShellItem_Compare(psi_b, psi[0], SICHINT_CANONICAL, &order);
2928 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2929 todo_wine ok(order == 1, "Got order %d\n", order);
2930 hr = IShellItem_Compare(psi_b, psi[2], SICHINT_CANONICAL, &order);
2931 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2932 todo_wine ok(order == 1, "Got order %d\n", order);
2933 hr = IShellItem_Compare(psi_b, psi[1], SICHINT_CANONICAL, &order);
2934 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2935 todo_wine ok(order == 1, "Got order %d\n", order);
2936
2937 /* b:c\a, b:c\c, b:c\b */
2938 hr = IShellItem_Compare(psi_b, psi[6], SICHINT_CANONICAL, &order);
2939 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2940 ok(order == -1, "Got order %d\n", order);
2941 hr = IShellItem_Compare(psi_b, psi[8], SICHINT_CANONICAL, &order);
2942 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2943 ok(order == -1, "Got order %d\n", order);
2944 hr = IShellItem_Compare(psi_b, psi[7], SICHINT_CANONICAL, &order);
2945 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
2946 ok(order == -1, "Got order %d\n", order);
2947
2948cleanup:
2949 IShellFolder_Release(psf_current);
2950
2951 DeleteFileA(".\\a\\a");
2952 DeleteFileA(".\\a\\b");
2953 DeleteFileA(".\\a\\c");
2954 DeleteFileA(".\\b\\a");
2955 DeleteFileA(".\\b\\b");
2956 DeleteFileA(".\\b\\c");
2957 DeleteFileA(".\\c\\a");
2958 DeleteFileA(".\\c\\b");
2959 DeleteFileA(".\\c\\c");
2960 RemoveDirectoryA(".\\a");
2961 RemoveDirectoryA(".\\b");
2962 RemoveDirectoryA(".\\c");
2963
2964 if(psi_a) IShellItem_Release(psi_a);
2965 if(psi_b) IShellItem_Release(psi_b);
2966 if(psi_c) IShellItem_Release(psi_c);
2967
2968 for(i = 0; i < 9; i++)
2969 if(psi[i]) IShellItem_Release(psi[i]);
2970}

Referenced by START_TEST().

◆ test_ShellItemGetAttributes()

static void test_ShellItemGetAttributes ( void  )
static

Definition at line 4033 of file shlfolder.c.

4034{
4035 IShellItem *psi, *psi_folder1, *psi_file1;
4036 IShellFolder *pdesktopsf;
4037 LPITEMIDLIST pidl_desktop, pidl;
4038 SFGAOF sfgao;
4039 HRESULT hr;
4040 WCHAR curdirW[MAX_PATH];
4042 static const WCHAR testdir1W[] = {'t','e','s','t','d','i','r',0};
4043 static const WCHAR testfile1W[] = {'t','e','s','t','d','i','r','\\','t','e','s','t','1','.','t','x','t',0};
4044
4045 if(!pSHCreateShellItem)
4046 {
4047 skip("SHCreateShellItem missing.\n");
4048 return;
4049 }
4050
4052 ok(hr == S_OK, "Got 0x%08x\n", hr);
4053 if(SUCCEEDED(hr))
4054 {
4055 hr = pSHCreateShellItem(NULL, NULL, pidl_desktop, &psi);
4056 ok(hr == S_OK, "Got 0x%08x\n", hr);
4057 ILFree(pidl_desktop);
4058 }
4059 if(FAILED(hr))
4060 {
4061 skip("Skipping tests.\n");
4062 return;
4063 }
4064
4065 if(0)
4066 {
4067 /* Crashes on native (Win 7) */
4068 IShellItem_GetAttributes(psi, 0, NULL);
4069 }
4070
4071 /* Test GetAttributes on the desktop folder. */
4072 sfgao = 0xdeadbeef;
4073 hr = IShellItem_GetAttributes(psi, SFGAO_FOLDER, &sfgao);
4074 ok(hr == S_OK || broken(hr == E_FAIL) /* <Vista */, "Got 0x%08x\n", hr);
4075 ok(sfgao == SFGAO_FOLDER || broken(sfgao == 0) /* <Vista */, "Got 0x%08x\n", sfgao);
4076
4077 IShellItem_Release(psi);
4078
4080
4081 SHGetDesktopFolder(&pdesktopsf);
4082
4084 myPathAddBackslashW(curdirW);
4085
4086 lstrcpyW(buf, curdirW);
4087 lstrcatW(buf, testdir1W);
4088 hr = IShellFolder_ParseDisplayName(pdesktopsf, NULL, NULL, buf, NULL, &pidl, NULL);
4089 ok(hr == S_OK, "got 0x%08x\n", hr);
4090 hr = pSHCreateShellItem(NULL, NULL, pidl, &psi_folder1);
4091 ok(hr == S_OK, "Got 0x%08x\n", sfgao);
4092 ILFree(pidl);
4093
4094 lstrcpyW(buf, curdirW);
4095 lstrcatW(buf, testfile1W);
4096 hr = IShellFolder_ParseDisplayName(pdesktopsf, NULL, NULL, buf, NULL, &pidl, NULL);
4097 ok(hr == S_OK, "got 0x%08x\n", hr);
4098 hr = pSHCreateShellItem(NULL, NULL, pidl, &psi_file1);
4099 ok(hr == S_OK, "Got 0x%08x\n", sfgao);
4100 ILFree(pidl);
4101
4102 IShellFolder_Release(pdesktopsf);
4103
4104 sfgao = 0xdeadbeef;
4105 hr = IShellItem_GetAttributes(psi_folder1, 0, &sfgao);
4106 ok(hr == S_OK, "Got 0x%08x\n", hr);
4107 ok(sfgao == 0, "Got 0x%08x\n", sfgao);
4108
4109 sfgao = 0xdeadbeef;
4110 hr = IShellItem_GetAttributes(psi_folder1, SFGAO_FOLDER, &sfgao);
4111 ok(hr == S_OK, "Got 0x%08x\n", hr);
4112 ok(sfgao == SFGAO_FOLDER, "Got 0x%08x\n", sfgao);
4113
4114 sfgao = 0xdeadbeef;
4115 hr = IShellItem_GetAttributes(psi_file1, SFGAO_FOLDER, &sfgao);
4116 ok(hr == S_FALSE, "Got 0x%08x\n", hr);
4117 ok(sfgao == 0, "Got 0x%08x\n", sfgao);
4118
4119 IShellItem_Release(psi_folder1);
4120 IShellItem_Release(psi_file1);
4121
4122 Cleanup();
4123}

Referenced by START_TEST().

◆ test_SHGetFolderPathA()

static void test_SHGetFolderPathA ( void  )
static

Definition at line 1714 of file shlfolder.c.

1715{
1716 static const BOOL is_win64 = sizeof(void *) > sizeof(int);
1717 BOOL is_wow64;
1718 char path[MAX_PATH];
1719 char path_x86[MAX_PATH];
1720 char path_key[MAX_PATH];
1721 HRESULT hr;
1722 HKEY key;
1723
1724 if (!pIsWow64Process || !pIsWow64Process( GetCurrentProcess(), &is_wow64 )) is_wow64 = FALSE;
1725
1727 ok( hr == S_OK, "SHGetFolderPathA failed %x\n", hr );
1729 if (hr == E_FAIL)
1730 {
1731 win_skip( "Program Files (x86) not supported\n" );
1732 return;
1733 }
1734 ok( hr == S_OK, "SHGetFolderPathA failed %x\n", hr );
1735 if (is_win64)
1736 {
1737 ok( lstrcmpiA( path, path_x86 ), "paths are identical '%s'\n", path );
1738 ok( strstr( path, "x86" ) == NULL, "64-bit path '%s' contains x86\n", path );
1739 ok( strstr( path_x86, "x86" ) != NULL, "32-bit path '%s' doesn't contain x86\n", path_x86 );
1740 }
1741 else
1742 {
1743 ok( !lstrcmpiA( path, path_x86 ), "paths differ '%s' != '%s'\n", path, path_x86 );
1744 if (is_wow64)
1745 ok( strstr( path, "x86" ) != NULL, "32-bit path '%s' doesn't contain x86\n", path );
1746 else
1747 ok( strstr( path, "x86" ) == NULL, "32-bit path '%s' contains x86\n", path );
1748 }
1749 if (!RegOpenKeyA( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion", &key ))
1750 {
1751 DWORD type, count = sizeof(path_x86);
1752 if (!RegQueryValueExA( key, "ProgramFilesDir (x86)", NULL, &type, (BYTE *)path_key, &count ))
1753 {
1754 ok( is_win64 || is_wow64, "ProgramFilesDir (x86) exists on 32-bit setup\n" );
1755 ok( !lstrcmpiA( path_key, path_x86 ), "paths differ '%s' != '%s'\n", path_key, path_x86 );
1756 }
1757 else ok( !is_win64 && !is_wow64, "ProgramFilesDir (x86) should exist on 64-bit setup\n" );
1758 RegCloseKey( key );
1759 }
1760
1762 ok( hr == S_OK, "SHGetFolderPathA failed %x\n", hr );
1764 if (hr == E_FAIL)
1765 {
1766 win_skip( "Common Files (x86) not supported\n" );
1767 return;
1768 }
1769 ok( hr == S_OK, "SHGetFolderPathA failed %x\n", hr );
1770 if (is_win64)
1771 {
1772 ok( lstrcmpiA( path, path_x86 ), "paths are identical '%s'\n", path );
1773 ok( strstr( path, "x86" ) == NULL, "64-bit path '%s' contains x86\n", path );
1774 ok( strstr( path_x86, "x86" ) != NULL, "32-bit path '%s' doesn't contain x86\n", path_x86 );
1775 }
1776 else
1777 {
1778 ok( !lstrcmpiA( path, path_x86 ), "paths differ '%s' != '%s'\n", path, path_x86 );
1779 if (is_wow64)
1780 ok( strstr( path, "x86" ) != NULL, "32-bit path '%s' doesn't contain x86\n", path );
1781 else
1782 ok( strstr( path, "x86" ) == NULL, "32-bit path '%s' contains x86\n", path );
1783 }
1784 if (!RegOpenKeyA( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion", &key ))
1785 {
1786 DWORD type, count = sizeof(path_x86);
1787 if (!RegQueryValueExA( key, "CommonFilesDir (x86)", NULL, &type, (BYTE *)path_key, &count ))
1788 {
1789 ok( is_win64 || is_wow64, "CommonFilesDir (x86) exists on 32-bit setup\n" );
1790 ok( !lstrcmpiA( path_key, path_x86 ), "paths differ '%s' != '%s'\n", path_key, path_x86 );
1791 }
1792 else ok( !is_win64 && !is_wow64, "CommonFilesDir (x86) should exist on 64-bit setup\n" );
1793 }
1794}
char * strstr(char *String1, char *String2)
Definition: utclib.c:653
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3234
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4009
#define GetCurrentProcess()
Definition: compat.h:759
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4227
HRESULT WINAPI SHGetFolderPathA(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPSTR pszPath)
Definition: shellpath.c:2963
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
BOOL is_wow64
Definition: main.c:38
static const BOOL is_win64
Definition: kernelbase.h:49
#define CSIDL_PROGRAM_FILES
Definition: shlobj.h:2216
@ SHGFP_TYPE_CURRENT
Definition: shlobj.h:2155
#define CSIDL_PROGRAM_FILES_COMMONX86
Definition: shlobj.h:2222
#define CSIDL_PROGRAM_FILES_COMMON
Definition: shlobj.h:2221
#define CSIDL_PROGRAM_FILESX86
Definition: shlobj.h:2220
Definition: copy.c:22
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12

Referenced by START_TEST().

◆ test_SHGetFolderPathAndSubDirA()

static void test_SHGetFolderPathAndSubDirA ( void  )
static

Definition at line 1796 of file shlfolder.c.

1797{
1798 HRESULT ret;
1799 BOOL delret;
1800 DWORD dwret;
1801 int i;
1802 static const char wine[] = "wine";
1803 static const char winetemp[] = "wine\\temp";
1804 static char appdata[MAX_PATH];
1805 static char testpath[MAX_PATH];
1806 static char toolongpath[MAX_PATH+1];
1807
1809 {
1810 win_skip("SHGetFolderPathA failed for CSIDL_LOCAL_APPDATA!\n");
1811 return;
1812 }
1813
1814 sprintf(testpath, "%s\\%s", appdata, winetemp);
1815 delret = RemoveDirectoryA(testpath);
1816 if(!delret && (ERROR_PATH_NOT_FOUND != GetLastError()) ) {
1817 win_skip("RemoveDirectoryA(%s) failed with error %u\n", testpath, GetLastError());
1818 return;
1819 }
1820
1821 sprintf(testpath, "%s\\%s", appdata, wine);
1822 delret = RemoveDirectoryA(testpath);
1823 if(!delret && (ERROR_PATH_NOT_FOUND != GetLastError()) && (ERROR_FILE_NOT_FOUND != GetLastError())) {
1824 win_skip("RemoveDirectoryA(%s) failed with error %u\n", testpath, GetLastError());
1825 return;
1826 }
1827
1828 /* test invalid second parameter */
1830 ok(E_INVALIDARG == ret, "expected E_INVALIDARG, got %x\n", ret);
1831
1832 /* test fourth parameter */
1834 switch(ret) {
1835 case S_OK: /* winvista */
1836 ok(!strncmp(appdata, testpath, strlen(appdata)),
1837 "expected %s to start with %s\n", testpath, appdata);
1838 ok(!lstrcmpA(&testpath[1 + strlen(appdata)], winetemp),
1839 "expected %s to end with %s\n", testpath, winetemp);
1840 break;
1841 case E_INVALIDARG: /* winxp, win2k3 */
1842 break;
1843 default:
1844 ok(0, "expected S_OK or E_INVALIDARG, got %x\n", ret);
1845 }
1846
1847 /* test fifth parameter */
1848 testpath[0] = '\0';
1850 ok(S_OK == ret, "expected S_OK, got %x\n", ret);
1851 ok(!lstrcmpA(appdata, testpath), "expected %s, got %s\n", appdata, testpath);
1852
1853 testpath[0] = '\0';
1855 ok(S_OK == ret, "expected S_OK, got %x\n", ret);
1856 ok(!lstrcmpA(appdata, testpath), "expected %s, got %s\n", appdata, testpath);
1857
1858 testpath[0] = '\0';
1860 ok(S_OK == ret, "expected S_OK, got %x\n", ret);
1861 ok(!lstrcmpA(appdata, testpath), "expected %s, got %s\n", appdata, testpath);
1862
1863 for(i=0; i< MAX_PATH; i++)
1864 toolongpath[i] = '0' + i % 10;
1865 toolongpath[MAX_PATH] = '\0';
1868 "expected %x, got %x\n", HRESULT_FROM_WIN32(ERROR_FILENAME_EXCED_RANGE), ret);
1869
1870 testpath[0] = '\0';
1872 ok((S_OK == ret) || (E_INVALIDARG == ret), "expected S_OK or E_INVALIDARG, got %x\n", ret);
1873
1874 /* test a not existing path */
1875 testpath[0] = '\0';
1878 "expected %x, got %x\n", HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND), ret);
1879
1880 /* create a directory inside a not existing directory */
1881 testpath[0] = '\0';
1883 ok(S_OK == ret, "expected S_OK, got %x\n", ret);
1884 ok(!strncmp(appdata, testpath, strlen(appdata)),
1885 "expected %s to start with %s\n", testpath, appdata);
1886 ok(!lstrcmpA(&testpath[1 + strlen(appdata)], winetemp),
1887 "expected %s to end with %s\n", testpath, winetemp);
1888 dwret = GetFileAttributesA(testpath);
1889 ok(FILE_ATTRIBUTE_DIRECTORY | dwret, "expected %x to contain FILE_ATTRIBUTE_DIRECTORY\n", dwret);
1890
1891 /* cleanup */
1892 sprintf(testpath, "%s\\%s", appdata, winetemp);
1893 RemoveDirectoryA(testpath);
1894 sprintf(testpath, "%s\\%s", appdata, wine);
1895 RemoveDirectoryA(testpath);
1896}
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
Definition: utclib.c:534
HRESULT WINAPI SHGetFolderPathAndSubDirA(HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPCSTR pszSubPath, LPSTR pszPath)
Definition: shellpath.c:2729
#define sprintf
Definition: sprintf.c:45
static const BYTE wine[]
Definition: encode.c:678
#define CSIDL_FLAG_CREATE
#define CSIDL_FLAG_DONT_VERIFY
Definition: shlobj.h:2240
#define CSIDL_LOCAL_APPDATA
Definition: shlobj.h:2206
#define ERROR_PATH_NOT_FOUND
Definition: winerror.h:228
#define ERROR_FILENAME_EXCED_RANGE
Definition: winerror.h:385
static const char appdata[]
Definition: shdocvw.c:39

Referenced by START_TEST().

◆ test_SHGetIDListFromObject()

static void test_SHGetIDListFromObject ( void  )
static

Definition at line 3023 of file shlfolder.c.

3024{
3025 IUnknownImpl *punkimpl;
3026 IShellFolder *psfdesktop;
3027 IShellView *psv;
3028 LPITEMIDLIST pidl, pidl_desktop;
3029 HRESULT hres;
3030 UINT i;
3031 struct if_count ifaces[] =
3032 { {&IID_IPersistIDList, 0},
3033 {&IID_IPersistFolder2, 0},
3034 {&IID_IDataObject, 0},
3035 {&IID_IParentAndItem, 0},
3036 {&IID_IFolderView, 0},
3037 {NULL, 0} };
3038
3039 if(!pSHGetIDListFromObject)
3040 {
3041 win_skip("SHGetIDListFromObject missing.\n");
3042 return;
3043 }
3044
3045 if(0)
3046 {
3047 /* Crashes native */
3048 pSHGetIDListFromObject(NULL, NULL);
3049 pSHGetIDListFromObject((void*)0xDEADBEEF, NULL);
3050 }
3051
3052 hres = pSHGetIDListFromObject(NULL, &pidl);
3053 ok(hres == E_NOINTERFACE, "Got %x\n", hres);
3054
3055 punkimpl = heap_alloc(sizeof(*punkimpl));
3056 punkimpl->IUnknown_iface.lpVtbl = &vt_IUnknown;
3057 punkimpl->ifaces = ifaces;
3058 punkimpl->unknown = 0;
3059
3060 hres = pSHGetIDListFromObject(&punkimpl->IUnknown_iface, &pidl);
3061 ok(hres == E_NOINTERFACE, "Got %x\n", hres);
3062 ok(ifaces[0].count, "interface not requested.\n");
3063 ok(ifaces[1].count, "interface not requested.\n");
3064 ok(ifaces[2].count, "interface not requested.\n");
3065 todo_wine
3066 ok(ifaces[3].count || broken(!ifaces[3].count /*vista*/),
3067 "interface not requested.\n");
3068 ok(ifaces[4].count || broken(!ifaces[4].count /*vista*/),
3069 "interface not requested.\n");
3070
3071 ok(!punkimpl->unknown, "Got %d unknown.\n", punkimpl->unknown);
3072 heap_free(punkimpl);
3073
3074 pidl_desktop = NULL;
3076 ok(pidl_desktop != NULL, "Failed to get desktop pidl.\n");
3077
3078 SHGetDesktopFolder(&psfdesktop);
3079
3080 /* Test IShellItem */
3081 if(pSHCreateShellItem)
3082 {
3083 IShellItem *shellitem;
3084 hres = pSHCreateShellItem(NULL, NULL, pidl_desktop, &shellitem);
3085 ok(hres == S_OK, "got 0x%08x\n", hres);
3086 if(SUCCEEDED(hres))
3087 {
3088 hres = pSHGetIDListFromObject((IUnknown*)shellitem, &pidl);
3089 ok(hres == S_OK, "got 0x%08x\n", hres);
3090 if(SUCCEEDED(hres))
3091 {
3092 ok(ILIsEqual(pidl_desktop, pidl), "pidl not equal.\n");
3093 ILFree(pidl);
3094 }
3095 IShellItem_Release(shellitem);
3096 }
3097 }
3098 else
3099 skip("no SHCreateShellItem.\n");
3100
3101 /* Test IShellFolder */
3102 hres = pSHGetIDListFromObject((IUnknown*)psfdesktop, &pidl);
3103 ok(hres == S_OK, "got 0x%08x\n", hres);
3104 if(SUCCEEDED(hres))
3105 {
3106 ok(ILIsEqual(pidl_desktop, pidl), "pidl not equal.\n");
3107 ILFree(pidl);
3108 }
3109
3110 hres = IShellFolder_CreateViewObject(psfdesktop, NULL, &IID_IShellView, (void**)&psv);
3111 ok(hres == S_OK, "got 0x%08x\n", hres);
3112 if(SUCCEEDED(hres))
3113 {
3114 IEnumIDList *peidl;
3115 IDataObject *pdo;
3116 SHCONTF enum_flags;
3117
3118 /* Test IFolderView */
3119 hres = pSHGetIDListFromObject((IUnknown*)psv, &pidl);
3120 ok(hres == S_OK, "got 0x%08x\n", hres);
3121 if(SUCCEEDED(hres))
3122 {
3123 ok(ILIsEqual(pidl_desktop, pidl), "pidl not equal.\n");
3124 ILFree(pidl);
3125 }
3126
3127 /* Test IDataObject */
3128 enum_flags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS | SHCONTF_INCLUDEHIDDEN;
3129 hres = IShellFolder_EnumObjects(psfdesktop, NULL, enum_flags, &peidl);
3130 ok(hres == S_OK, "got 0x%08x\n", hres);
3131 if(SUCCEEDED(hres))
3132 {
3133 LPITEMIDLIST apidl[5];
3134 UINT count = 0;
3135 for(count = 0; count < 5; count++)
3136 if(IEnumIDList_Next(peidl, 1, &apidl[count], NULL) != S_OK)
3137 break;
3138
3139 if(count)
3140 {
3141 hres = IShellFolder_GetUIObjectOf(psfdesktop, NULL, 1, (LPCITEMIDLIST*)apidl,
3142 &IID_IDataObject, NULL, (void**)&pdo);
3143 ok(hres == S_OK, "got 0x%08x\n", hres);
3144 if(SUCCEEDED(hres))
3145 {
3146 pidl = (void*)0xDEADBEEF;
3147 hres = pSHGetIDListFromObject((IUnknown*)pdo, &pidl);
3148 ok(hres == S_OK, "got 0x%08x\n", hres);
3149 ok(pidl != NULL, "pidl is NULL.\n");
3150 ok(ILIsEqual(pidl, apidl[0]), "pidl not equal.\n");
3151 ILFree(pidl);
3152
3153 IDataObject_Release(pdo);
3154 }
3155 }
3156 else
3157 skip("No files found - skipping single-file test.\n");
3158
3159 if(count > 1)
3160 {
3161 hres = IShellFolder_GetUIObjectOf(psfdesktop, NULL, count, (LPCITEMIDLIST*)apidl,
3162 &IID_IDataObject, NULL, (void**)&pdo);
3163 ok(hres == S_OK, "got 0x%08x\n", hres);
3164 if(SUCCEEDED(hres))
3165 {
3166 pidl = (void*)0xDEADBEEF;
3167 hres = pSHGetIDListFromObject((IUnknown*)pdo, &pidl);
3168 ok(hres == E_NOINTERFACE || hres == E_FAIL /*Vista*/,
3169 "got 0x%08x\n", hres);
3170 ok(pidl == NULL, "pidl is not NULL.\n");
3171
3172 IDataObject_Release(pdo);
3173 }
3174 }
3175 else
3176 skip("zero or one file found - skipping multi-file test.\n");
3177
3178 for(i = 0; i < count; i++)
3179 ILFree(apidl[i]);
3180
3181 IEnumIDList_Release(peidl);
3182 }
3183
3184 IShellView_Release(psv);
3185 }
3186
3187 IShellFolder_Release(psfdesktop);
3188 ILFree(pidl_desktop);
3189}
static const IUnknownVtbl vt_IUnknown
Definition: shlfolder.c:3017
struct IUnknownImpl::if_count * ifaces
IUnknown IUnknown_iface
Definition: filtergraph.c:2200

Referenced by START_TEST().

◆ test_SHGetItemFromDataObject()

static void test_SHGetItemFromDataObject ( void  )
static

Definition at line 2633 of file shlfolder.c.

2634{
2635 IShellFolder *psfdesktop;
2636 IShellItem *psi;
2637 IShellView *psv;
2638 HRESULT hres;
2639
2640 if(!pSHGetItemFromDataObject)
2641 {
2642 win_skip("No SHGetItemFromDataObject.\n");
2643 return;
2644 }
2645
2646 if(0)
2647 {
2648 /* Crashes under win7 */
2649 pSHGetItemFromDataObject(NULL, 0, &IID_IShellItem, NULL);
2650 }
2651
2652 hres = pSHGetItemFromDataObject(NULL, 0, &IID_IShellItem, (void**)&psv);
2653 ok(hres == E_INVALIDARG, "got 0x%08x\n", hres);
2654
2655 SHGetDesktopFolder(&psfdesktop);
2656
2657 hres = IShellFolder_CreateViewObject(psfdesktop, NULL, &IID_IShellView, (void**)&psv);
2658 ok(hres == S_OK, "got 0x%08x\n", hres);
2659 if(SUCCEEDED(hres))
2660 {
2661 IEnumIDList *peidl;
2662 IDataObject *pdo;
2663 SHCONTF enum_flags;
2664
2665 enum_flags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS | SHCONTF_INCLUDEHIDDEN;
2666 hres = IShellFolder_EnumObjects(psfdesktop, NULL, enum_flags, &peidl);
2667 ok(hres == S_OK, "got 0x%08x\n", hres);
2668 if(SUCCEEDED(hres))
2669 {
2670 LPITEMIDLIST apidl[5];
2671 UINT count = 0, i;
2672
2673 for(count = 0; count < 5; count++)
2674 if(IEnumIDList_Next(peidl, 1, &apidl[count], NULL) != S_OK)
2675 break;
2676
2677 if(count)
2678 {
2679 hres = IShellFolder_GetUIObjectOf(psfdesktop, NULL, 1, (LPCITEMIDLIST*)apidl,
2680 &IID_IDataObject, NULL, (void**)&pdo);
2681 ok(hres == S_OK, "got 0x%08x\n", hres);
2682 if(SUCCEEDED(hres))
2683 {
2684 hres = pSHGetItemFromDataObject(pdo, DOGIF_DEFAULT, &IID_IShellItem, (void**)&psi);
2685 ok(hres == S_OK, "got 0x%08x\n", hres);
2686 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2687 hres = pSHGetItemFromDataObject(pdo, DOGIF_TRAVERSE_LINK, &IID_IShellItem, (void**)&psi);
2688 ok(hres == S_OK, "got 0x%08x\n", hres);
2689 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2690 hres = pSHGetItemFromDataObject(pdo, DOGIF_NO_HDROP, &IID_IShellItem, (void**)&psi);
2691 ok(hres == S_OK, "got 0x%08x\n", hres);
2692 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2693 hres = pSHGetItemFromDataObject(pdo, DOGIF_NO_URL, &IID_IShellItem, (void**)&psi);
2694 ok(hres == S_OK, "got 0x%08x\n", hres);
2695 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2696 hres = pSHGetItemFromDataObject(pdo, DOGIF_ONLY_IF_ONE, &IID_IShellItem, (void**)&psi);
2697 ok(hres == S_OK, "got 0x%08x\n", hres);
2698 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2699
2700 IDataObject_Release(pdo);
2701 }
2702 }
2703 else
2704 skip("No file(s) found - skipping single-file test.\n");
2705
2706 if(count > 1)
2707 {
2708 hres = IShellFolder_GetUIObjectOf(psfdesktop, NULL, count, (LPCITEMIDLIST*)apidl,
2709 &IID_IDataObject, NULL, (void**)&pdo);
2710 ok(hres == S_OK, "got 0x%08x\n", hres);
2711 if(SUCCEEDED(hres))
2712 {
2713 hres = pSHGetItemFromDataObject(pdo, DOGIF_DEFAULT, &IID_IShellItem, (void**)&psi);
2714 ok(hres == S_OK, "got 0x%08x\n", hres);
2715 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2716 hres = pSHGetItemFromDataObject(pdo, DOGIF_TRAVERSE_LINK, &IID_IShellItem, (void**)&psi);
2717 ok(hres == S_OK, "got 0x%08x\n", hres);
2718 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2719 hres = pSHGetItemFromDataObject(pdo, DOGIF_NO_HDROP, &IID_IShellItem, (void**)&psi);
2720 ok(hres == S_OK, "got 0x%08x\n", hres);
2721 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2722 hres = pSHGetItemFromDataObject(pdo, DOGIF_NO_URL, &IID_IShellItem, (void**)&psi);
2723 ok(hres == S_OK, "got 0x%08x\n", hres);
2724 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2725 hres = pSHGetItemFromDataObject(pdo, DOGIF_ONLY_IF_ONE, &IID_IShellItem, (void**)&psi);
2726 ok(hres == E_FAIL, "got 0x%08x\n", hres);
2727 if(SUCCEEDED(hres)) IShellItem_Release(psi);
2728 IDataObject_Release(pdo);
2729 }
2730 }
2731 else
2732 skip("zero or one file found - skipping multi-file test.\n");
2733
2734 for(i = 0; i < count; i++)
2735 ILFree(apidl[i]);
2736
2737 IEnumIDList_Release(peidl);
2738 }
2739
2740 IShellView_Release(psv);
2741 }
2742
2743 IShellFolder_Release(psfdesktop);
2744}

Referenced by START_TEST().

◆ test_SHGetItemFromObject()

static void test_SHGetItemFromObject ( void  )
static

Definition at line 3191 of file shlfolder.c.

3192{
3193 IUnknownImpl *punkimpl;
3194 IShellFolder *psfdesktop;
3195 LPITEMIDLIST pidl;
3196 IShellItem *psi;
3197 IUnknown *punk;
3198 HRESULT hres;
3199 struct if_count ifaces[] =
3200 { {&IID_IPersistIDList, 0},
3201 {&IID_IPersistFolder2, 0},
3202 {&IID_IDataObject, 0},
3203 {&IID_IParentAndItem, 0},
3204 {&IID_IFolderView, 0},
3205 {NULL, 0} };
3206
3207 if(!pSHGetItemFromObject)
3208 {
3209 skip("No SHGetItemFromObject.\n");
3210 return;
3211 }
3212
3213 SHGetDesktopFolder(&psfdesktop);
3214
3215 if(0)
3216 {
3217 /* Crashes with Windows 7 */
3218 pSHGetItemFromObject((IUnknown*)psfdesktop, &IID_IUnknown, NULL);
3219 pSHGetItemFromObject(NULL, &IID_IUnknown, NULL);
3220 pSHGetItemFromObject((IUnknown*)psfdesktop, NULL, (void**)&punk);
3221 }
3222
3223 hres = pSHGetItemFromObject(NULL, &IID_IUnknown, (void**)&punk);
3224 ok(hres == E_NOINTERFACE, "Got 0x%08x\n", hres);
3225
3226 punkimpl = heap_alloc(sizeof(*punkimpl));
3227 punkimpl->IUnknown_iface.lpVtbl = &vt_IUnknown;
3228 punkimpl->ifaces = ifaces;
3229 punkimpl->unknown = 0;
3230
3231 /* The same as SHGetIDListFromObject */
3232 hres = pSHGetIDListFromObject(&punkimpl->IUnknown_iface, &pidl);
3233 ok(hres == E_NOINTERFACE, "Got %x\n", hres);
3234 ok(ifaces[0].count, "interface not requested.\n");
3235 ok(ifaces[1].count, "interface not requested.\n");
3236 ok(ifaces[2].count, "interface not requested.\n");
3237 todo_wine
3238 ok(ifaces[3].count || broken(!ifaces[3].count /*vista*/),
3239 "interface not requested.\n");
3240 ok(ifaces[4].count || broken(!ifaces[4].count /*vista*/),
3241 "interface not requested.\n");
3242
3243 ok(!punkimpl->unknown, "Got %d unknown.\n", punkimpl->unknown);
3244 heap_free(punkimpl);
3245
3246 /* Test IShellItem */
3247 hres = pSHGetItemFromObject((IUnknown*)psfdesktop, &IID_IShellItem, (void**)&psi);
3248 ok(hres == S_OK, "Got 0x%08x\n", hres);
3249 if(SUCCEEDED(hres))
3250 {
3251 IShellItem *psi2;
3252 hres = pSHGetItemFromObject((IUnknown*)psi, &IID_IShellItem, (void**)&psi2);
3253 ok(hres == S_OK, "Got 0x%08x\n", hres);
3254 if(SUCCEEDED(hres))
3255 {
3256 todo_wine
3257 ok(psi == psi2, "Different instances (%p != %p).\n", psi, psi2);
3258 IShellItem_Release(psi2);
3259 }
3260 IShellItem_Release(psi);
3261 }
3262
3263 IShellFolder_Release(psfdesktop);
3264}

Referenced by START_TEST().

◆ test_SHGetNameFromIDList()

static void test_SHGetNameFromIDList ( void  )
static

Definition at line 2488 of file shlfolder.c.

2489{
2490 IShellItem *shellitem;
2491 LPITEMIDLIST pidl;
2492 LPWSTR name_string;
2493 HRESULT hres;
2494 UINT i;
2495 static const DWORD flags[] = {
2496 SIGDN_NORMALDISPLAY, SIGDN_PARENTRELATIVEPARSING,
2497 SIGDN_DESKTOPABSOLUTEPARSING,SIGDN_PARENTRELATIVEEDITING,
2498 SIGDN_DESKTOPABSOLUTEEDITING, /*SIGDN_FILESYSPATH, SIGDN_URL, */
2499 SIGDN_PARENTRELATIVEFORADDRESSBAR,SIGDN_PARENTRELATIVE, -1234};
2500
2501 if(!pSHGetNameFromIDList)
2502 {
2503 win_skip("SHGetNameFromIDList missing.\n");
2504 return;
2505 }
2506
2507 /* This should be available on any platform that passed the above test. */
2508 ok(pSHCreateShellItem != NULL, "SHCreateShellItem missing.\n");
2509
2510 if(0)
2511 {
2512 /* Crashes under win7 */
2513 pSHGetNameFromIDList(NULL, 0, NULL);
2514 }
2515
2516 hres = pSHGetNameFromIDList(NULL, 0, &name_string);
2517 ok(hres == E_INVALIDARG, "Got 0x%08x\n", hres);
2518
2519 /* Test the desktop */
2521 ok(hres == S_OK, "Got 0x%08x\n", hres);
2522 hres = pSHCreateShellItem(NULL, NULL, pidl, &shellitem);
2523 ok(hres == S_OK, "Got 0x%08x\n", hres);
2524 if(SUCCEEDED(hres))
2525 {
2526 WCHAR *nameSI, *nameSH;
2528 HRESULT hrSI, hrSH, hrSF;
2529 STRRET strret;
2530 IShellFolder *psf;
2531 BOOL res;
2532
2533 SHGetDesktopFolder(&psf);
2534 for(i = 0; flags[i] != -1234; i++)
2535 {
2536 hrSI = IShellItem_GetDisplayName(shellitem, flags[i], &nameSI);
2537 ok(hrSI == S_OK, "Got 0x%08x\n", hrSI);
2538 hrSH = pSHGetNameFromIDList(pidl, flags[i], &nameSH);
2539 ok(hrSH == S_OK, "Got 0x%08x\n", hrSH);
2540 hrSF = IShellFolder_GetDisplayNameOf(psf, pidl, flags[i] & 0xffff, &strret);
2541 ok(hrSF == S_OK, "Got 0x%08x\n", hrSF);
2542
2543 if(SUCCEEDED(hrSI) && SUCCEEDED(hrSH))
2544 ok(!lstrcmpW(nameSI, nameSH), "Strings differ.\n");
2545
2546 if(SUCCEEDED(hrSF))
2547 {
2548 StrRetToBufW(&strret, NULL, buf, MAX_PATH);
2549 if(SUCCEEDED(hrSI))
2550 ok(!lstrcmpW(nameSI, buf), "Strings differ.\n");
2551 if(SUCCEEDED(hrSF))
2552 ok(!lstrcmpW(nameSI, buf), "Strings differ.\n");
2553 }
2554 if(SUCCEEDED(hrSI)) CoTaskMemFree(nameSI);
2555 if(SUCCEEDED(hrSH)) CoTaskMemFree(nameSH);
2556 }
2557 IShellFolder_Release(psf);
2558
2559 hrSI = pSHGetNameFromIDList(pidl, SIGDN_FILESYSPATH, &nameSI);
2560 ok(hrSI == S_OK, "Got 0x%08x\n", hrSI);
2561 res = SHGetPathFromIDListW(pidl, buf);
2562 ok(res == TRUE, "Got %d\n", res);
2563 if(SUCCEEDED(hrSI) && res)
2564 ok(!lstrcmpW(nameSI, buf), "Strings differ.\n");
2565 if(SUCCEEDED(hrSI)) CoTaskMemFree(nameSI);
2566
2567 hres = pSHGetNameFromIDList(pidl, SIGDN_URL, &name_string);
2568 todo_wine ok(hres == S_OK, "Got 0x%08x\n", hres);
2569 if(SUCCEEDED(hres)) CoTaskMemFree(name_string);
2570
2571 IShellItem_Release(shellitem);
2572 }
2573 ILFree(pidl);
2574
2575 /* Test the control panel */
2577 ok(hres == S_OK, "Got 0x%08x\n", hres);
2578 hres = pSHCreateShellItem(NULL, NULL, pidl, &shellitem);
2579 ok(hres == S_OK, "Got 0x%08x\n", hres);
2580 if(SUCCEEDED(hres))
2581 {
2582 WCHAR *nameSI, *nameSH;
2584 HRESULT hrSI, hrSH, hrSF;
2585 STRRET strret;
2586 IShellFolder *psf;
2587 BOOL res;
2588
2589 SHGetDesktopFolder(&psf);
2590 for(i = 0; flags[i] != -1234; i++)
2591 {
2592 hrSI = IShellItem_GetDisplayName(shellitem, flags[i], &nameSI);
2593 ok(hrSI == S_OK, "Got 0x%08x\n", hrSI);
2594 hrSH = pSHGetNameFromIDList(pidl, flags[i], &nameSH);
2595 ok(hrSH == S_OK, "Got 0x%08x\n", hrSH);
2596 hrSF = IShellFolder_GetDisplayNameOf(psf, pidl, flags[i] & 0xffff, &strret);
2597 ok(hrSF == S_OK, "Got 0x%08x\n", hrSF);
2598
2599 if(SUCCEEDED(hrSI) && SUCCEEDED(hrSH))
2600 ok(!lstrcmpW(nameSI, nameSH), "Strings differ.\n");
2601
2602 if(SUCCEEDED(hrSF))
2603 {
2604 StrRetToBufW(&strret, NULL, buf, MAX_PATH);
2605 if(SUCCEEDED(hrSI))
2606 ok(!lstrcmpW(nameSI, buf), "Strings differ.\n");
2607 if(SUCCEEDED(hrSF))
2608 ok(!lstrcmpW(nameSI, buf), "Strings differ.\n");
2609 }
2610 if(SUCCEEDED(hrSI)) CoTaskMemFree(nameSI);
2611 if(SUCCEEDED(hrSH)) CoTaskMemFree(nameSH);
2612 }
2613 IShellFolder_Release(psf);
2614
2615 hrSI = pSHGetNameFromIDList(pidl, SIGDN_FILESYSPATH, &nameSI);
2616 ok(hrSI == E_INVALIDARG, "Got 0x%08x\n", hrSI);
2617 res = SHGetPathFromIDListW(pidl, buf);
2618 ok(res == FALSE, "Got %d\n", res);
2619 if(SUCCEEDED(hrSI) && res)
2620 ok(!lstrcmpW(nameSI, buf), "Strings differ.\n");
2621 if(SUCCEEDED(hrSI)) CoTaskMemFree(nameSI);
2622
2623 hres = pSHGetNameFromIDList(pidl, SIGDN_URL, &name_string);
2624 todo_wine ok(hres == E_NOTIMPL /* Win7 */ || hres == S_OK /* Vista */,
2625 "Got 0x%08x\n", hres);
2626 if(SUCCEEDED(hres)) CoTaskMemFree(name_string);
2627
2628 IShellItem_Release(shellitem);
2629 }
2630 ILFree(pidl);
2631}
#define CSIDL_CONTROLS
Definition: shlobj.h:2182

Referenced by START_TEST().

◆ test_SHGetPathFromIDList()

static void test_SHGetPathFromIDList ( void  )
static

Definition at line 1067 of file shlfolder.c.

1068{
1069 SHITEMID emptyitem = { 0, { 0 } };
1070 LPCITEMIDLIST pidlEmpty = (LPCITEMIDLIST)&emptyitem;
1071 LPITEMIDLIST pidlMyComputer;
1072 WCHAR wszPath[MAX_PATH], wszDesktop[MAX_PATH];
1073 BOOL result;
1074 HRESULT hr;
1075 LPSHELLFOLDER psfDesktop;
1076 WCHAR wszMyComputer[] = {
1077 ':',':','{','2','0','D','0','4','F','E','0','-','3','A','E','A','-','1','0','6','9','-',
1078 'A','2','D','8','-','0','8','0','0','2','B','3','0','3','0','9','D','}',0 };
1080 LPITEMIDLIST pidlTestFile;
1081 HANDLE hTestFile;
1082 STRRET strret;
1083 static WCHAR wszTestFile[] = {
1084 'w','i','n','e','t','e','s','t','.','f','o','o',0 };
1085 LPITEMIDLIST pidlPrograms;
1086
1087 /* Calling SHGetPathFromIDListW with no pidl should return the empty string */
1088 wszPath[0] = 'a';
1089 wszPath[1] = '\0';
1090 result = SHGetPathFromIDListW(NULL, wszPath);
1091 ok(!result, "Expected failure\n");
1092 ok(!wszPath[0], "Expected empty string\n");
1093
1094 /* Calling SHGetPathFromIDListW with an empty pidl should return the desktop folder's path. */
1096 ok(result, "SHGetSpecialFolderPathW(CSIDL_DESKTOP) failed! Last error: %u\n", GetLastError());
1097 if (!result) return;
1098
1099 result = SHGetPathFromIDListW(pidlEmpty, wszPath);
1100 ok(result, "SHGetPathFromIDListW failed! Last error: %u\n", GetLastError());
1101 if (!result) return;
1102 ok(!lstrcmpiW(wszDesktop, wszPath), "SHGetPathFromIDListW didn't return desktop path for empty pidl!\n");
1103
1104 /* MyComputer does not map to a filesystem path. SHGetPathFromIDListW should fail. */
1105 hr = SHGetDesktopFolder(&psfDesktop);
1106 ok (hr == S_OK, "SHGetDesktopFolder failed! hr = %08x\n", hr);
1107 if (hr != S_OK) return;
1108
1109 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, wszMyComputer, NULL, &pidlMyComputer, NULL);
1110 ok (hr == S_OK, "Desktop's ParseDisplayName failed to parse MyComputer's CLSID! hr = %08x\n", hr);
1111 if (hr != S_OK) {
1112 IShellFolder_Release(psfDesktop);
1113 return;
1114 }
1115
1116 SetLastError(0xdeadbeef);
1117 wszPath[0] = 'a';
1118 wszPath[1] = '\0';
1119 result = SHGetPathFromIDListW(pidlMyComputer, wszPath);
1120 ok (!result, "SHGetPathFromIDListW succeeded where it shouldn't!\n");
1121 ok (GetLastError()==0xdeadbeef ||
1122 GetLastError()==ERROR_SUCCESS, /* Vista and higher */
1123 "Unexpected last error from SHGetPathFromIDListW: %u\n", GetLastError());
1124 ok (!wszPath[0], "Expected empty path\n");
1125 if (result) {
1126 IShellFolder_Release(psfDesktop);
1127 return;
1128 }
1129
1130 IMalloc_Free(ppM, pidlMyComputer);
1131
1133 ok(result, "SHGetSpecialFolderPathW failed! Last error: %u\n", GetLastError());
1134 if (!result) {
1135 IShellFolder_Release(psfDesktop);
1136 return;
1137 }
1139 lstrcatW(wszFileName, wszTestFile);
1141 ok(hTestFile != INVALID_HANDLE_VALUE, "CreateFileW failed! Last error: %u\n", GetLastError());
1142 if (hTestFile == INVALID_HANDLE_VALUE) {
1143 IShellFolder_Release(psfDesktop);
1144 return;
1145 }
1146 CloseHandle(hTestFile);
1147
1148 hr = IShellFolder_ParseDisplayName(psfDesktop, NULL, NULL, wszTestFile, NULL, &pidlTestFile, NULL);
1149 ok (hr == S_OK, "Desktop's ParseDisplayName failed to parse filename hr = %08x\n", hr);
1150 if (hr != S_OK) {
1151 IShellFolder_Release(psfDesktop);
1153 IMalloc_Free(ppM, pidlTestFile);
1154 return;
1155 }
1156
1157 /* This test is to show that the Desktop shellfolder prepends the CSIDL_DESKTOPDIRECTORY
1158 * path for files placed on the desktop, if called with SHGDN_FORPARSING. */
1159 hr = IShellFolder_GetDisplayNameOf(psfDesktop, pidlTestFile, SHGDN_FORPARSING, &strret);
1160 ok (hr == S_OK, "Desktop's GetDisplayNamfOf failed! hr = %08x\n", hr);
1161 IShellFolder_Release(psfDesktop);
1163 if (hr != S_OK) {
1164 IMalloc_Free(ppM, pidlTestFile);
1165 return;
1166 }
1167 StrRetToBufW(&strret, pidlTestFile, wszPath, MAX_PATH);
1168 ok(0 == lstrcmpW(wszFileName, wszPath),
1169 "Desktop->GetDisplayNameOf(pidlTestFile, SHGDN_FORPARSING) "
1170 "returned incorrect path for file placed on desktop\n");
1171
1172 result = SHGetPathFromIDListW(pidlTestFile, wszPath);
1173 ok(result, "SHGetPathFromIDListW failed! Last error: %u\n", GetLastError());
1174 ok(0 == lstrcmpW(wszFileName, wszPath), "SHGetPathFromIDListW returned incorrect path for file placed on desktop\n");
1175
1176 if (pSHGetPathFromIDListEx)
1177 {
1178 result = pSHGetPathFromIDListEx(pidlEmpty, wszPath, MAX_PATH, SFGAO_FILESYSTEM);
1179 ok(result, "SHGetPathFromIDListEx failed: %u\n", GetLastError());
1180 ok(!lstrcmpiW(wszDesktop, wszPath), "Unexpected SHGetPathFromIDListEx result %s, expected %s\n",
1181 wine_dbgstr_w(wszPath), wine_dbgstr_w(wszDesktop));
1182
1183 result = pSHGetPathFromIDListEx(pidlTestFile, wszPath, MAX_PATH, SFGAO_FILESYSTEM);
1184 ok(result, "SHGetPathFromIDListEx failed: %u\n", GetLastError());
1185 ok(!lstrcmpiW(wszFileName, wszPath), "Unexpected SHGetPathFromIDListEx result %s, expected %s\n",
1187
1188 SetLastError(0xdeadbeef);
1189 memset(wszPath, 0x55, sizeof(wszPath));
1190 result = pSHGetPathFromIDListEx(pidlTestFile, wszPath, 5, SFGAO_FILESYSTEM);
1191 ok(!result, "SHGetPathFromIDListEx returned: %x(%u)\n", result, GetLastError());
1192
1193 SetLastError(0xdeadbeef);
1194 memset(wszPath, 0x55, sizeof(wszPath));
1195 result = pSHGetPathFromIDListEx(pidlEmpty, wszPath, 5, SFGAO_FILESYSTEM);
1196 ok(!result, "SHGetPathFromIDListEx returned: %x(%u)\n", result, GetLastError());
1197 }
1198 else
1199 win_skip("SHGetPathFromIDListEx not available\n");
1200
1201 IMalloc_Free(ppM, pidlTestFile);
1202
1203 /* Test if we can get the path from the start menu "program files" PIDL. */
1205 ok(hr == S_OK, "SHGetFolderLocation failed: 0x%08x\n", hr);
1206
1207 SetLastError(0xdeadbeef);
1208 result = SHGetPathFromIDListW(pidlPrograms, wszPath);
1209 IMalloc_Free(ppM, pidlPrograms);
1210 ok(result, "SHGetPathFromIDListW failed\n");
1211}

Referenced by START_TEST().

◆ test_SHGetSetFolderCustomSettings()

static void test_SHGetSetFolderCustomSettings ( void  )
static

Definition at line 5290 of file shlfolder.c.

5291{
5292 HRESULT hr;
5293 SHFOLDERCUSTOMSETTINGS fcs;
5294 WCHAR pathW[MAX_PATH];
5295 WCHAR bufferW[MAX_PATH];
5296 WCHAR iconpathW[MAX_PATH];
5297 static const WCHAR somedirW[] = {'s','o','m','e','_','d','i','r',0};
5298 static const WCHAR iconW[] = {'\\','s','o','m','e','_','i','c','o','n','.','i','c','o',0};
5299 static const WCHAR desktop_iniW[] = {'\\','D','e','s','k','t','o','p','.','i','n','i',0};
5300
5301 if (!pSHGetSetFolderCustomSettings)
5302 {
5303 win_skip("SHGetSetFolderCustomSetting not exported by name (only by ordinal) for version XP/win2003\n");
5304 return;
5305 }
5306
5307 GetTempPathW(MAX_PATH, pathW);
5308 lstrcatW(pathW, somedirW);
5309 CreateDirectoryW(pathW, NULL);
5310
5311 lstrcpyW(iconpathW, pathW);
5312 lstrcatW(iconpathW, iconW);
5313
5314 memset(&fcs, 0, sizeof(fcs));
5315 fcs.dwSize = sizeof(fcs);
5316 fcs.dwMask = FCSM_ICONFILE;
5317 fcs.pszIconFile = iconpathW;
5318
5319 hr = pSHGetSetFolderCustomSettings(&fcs, pathW, FCS_FORCEWRITE); /*creates and writes to a Desktop.ini*/
5320 ok(hr == S_OK, "Expected S_OK, got %#x\n", hr);
5321
5322 memset(&fcs, 0, sizeof(fcs));
5323 fcs.dwSize = sizeof(fcs);
5324 fcs.dwMask = FCSM_ICONFILE;
5325 fcs.cchIconFile = MAX_PATH;
5326 fcs.pszIconFile = bufferW;
5327 bufferW[0] = 0;
5328
5329 hr = pSHGetSetFolderCustomSettings(&fcs, pathW, FCS_READ);
5330 todo_wine ok(hr == S_OK, "Expected S_OK, got %#x\n", hr);
5331 todo_wine ok(!lstrcmpiW(iconpathW, fcs.pszIconFile), "Expected %s, got %s\n", wine_dbgstr_w(iconpathW), wine_dbgstr_w(fcs.pszIconFile));
5332
5333 hr = pSHGetSetFolderCustomSettings(&fcs, NULL, FCS_READ);
5334 ok(hr == E_FAIL, "Expected E_FAIL, got %#x\n", hr);
5335
5336 lstrcpyW(bufferW, pathW);
5337 lstrcatW(bufferW, desktop_iniW);
5338 DeleteFileW(bufferW);
5339 RemoveDirectoryW(pathW);
5340}
static const WCHAR iconW[]
Definition: sec_mgr.c:42
#define FCS_FORCEWRITE
Definition: shlobj.h:87
#define FCSM_ICONFILE
Definition: shlobj.h:89
#define FCS_READ
Definition: shlobj.h:86

Referenced by START_TEST().

◆ test_SHLimitInputEdit()

static void test_SHLimitInputEdit ( void  )
static

Definition at line 5262 of file shlfolder.c.

5263{
5264 IShellFolder *desktop;
5265 HRESULT hr;
5266 HWND hwnd;
5267
5268 hr = SHGetDesktopFolder(&desktop);
5269 ok(hr == S_OK, "Failed to get desktop folder, hr %#x.\n", hr);
5270
5271 hr = SHLimitInputEdit(NULL, desktop);
5273 ok(hr == E_FAIL, "Unexpected hr %#x.\n", hr);
5274
5275 hwnd = CreateWindowA("EDIT", NULL, WS_VISIBLE, 0, 0, 100, 30, NULL, NULL, NULL, NULL);
5276 ok(hwnd != NULL, "Failed to create Edit control.\n");
5277
5278 hr = SHLimitInputEdit(hwnd, desktop);
5280 ok(hr == S_OK, "Failed to set input limits, hr %#x.\n", hr);
5281
5282 hr = SHLimitInputEdit(hwnd, desktop);
5284 ok(hr == S_OK, "Failed to set input limits, hr %#x.\n", hr);
5285
5287 IShellFolder_Release(desktop);
5288}
#define WS_VISIBLE
Definition: pedump.c:620
HRESULT WINAPI SHLimitInputEdit(HWND hWnd, IShellFolder *psf)
Definition: shellord.c:3048
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4417

Referenced by START_TEST().

◆ test_SHParseDisplayName()

static void test_SHParseDisplayName ( void  )
static

Definition at line 4243 of file shlfolder.c.

4244{
4245 LPITEMIDLIST pidl1, pidl2;
4246 IShellFolder *desktop;
4247 WCHAR dirW[MAX_PATH];
4248 WCHAR nameW[10];
4249 WCHAR *cdrom;
4250 HRESULT hr;
4251 BOOL ret, is_wow64;
4252
4253if (0)
4254{
4255 /* crashes on native */
4257 nameW[0] = 0;
4259}
4260
4261 pidl1 = (LPITEMIDLIST)0xdeadbeef;
4262 hr = SHParseDisplayName(NULL, NULL, &pidl1, 0, NULL);
4263 ok(broken(hr == E_OUTOFMEMORY) /* < Vista */ ||
4264 hr == E_INVALIDARG, "failed %08x\n", hr);
4265 ok(pidl1 == 0, "expected null ptr, got %p\n", pidl1);
4266
4267 /* dummy name */
4268 nameW[0] = 0;
4269 hr = SHParseDisplayName(nameW, NULL, &pidl1, 0, NULL);
4270 ok(hr == S_OK, "failed %08x\n", hr);
4271 hr = SHGetDesktopFolder(&desktop);
4272 ok(hr == S_OK, "failed %08x\n", hr);
4273 hr = IShellFolder_ParseDisplayName(desktop, NULL, NULL, nameW, NULL, &pidl2, NULL);
4274 ok(hr == S_OK, "failed %08x\n", hr);
4275 ret = ILIsEqual(pidl1, pidl2);
4276 ok(ret == TRUE, "expected equal idls\n");
4277 ILFree(pidl1);
4278 ILFree(pidl2);
4279
4280 /* with path */
4282
4283 hr = SHParseDisplayName(dirW, NULL, &pidl1, 0, NULL);
4284 ok(hr == S_OK, "failed %08x\n", hr);
4285 hr = IShellFolder_ParseDisplayName(desktop, NULL, NULL, dirW, NULL, &pidl2, NULL);
4286 ok(hr == S_OK, "failed %08x\n", hr);
4287
4288 ret = ILIsEqual(pidl1, pidl2);
4289 ok(ret == TRUE, "expected equal idls\n");
4290 ILFree(pidl1);
4291 ILFree(pidl2);
4292
4293 /* system32 is not redirected to syswow64 on WOW64 */
4294 if (!pIsWow64Process || !pIsWow64Process( GetCurrentProcess(), &is_wow64 )) is_wow64 = FALSE;
4295 if (is_wow64)
4296 {
4297 UINT len;
4298 *dirW = 0;
4300 ok(len > 0, "GetSystemDirectoryW failed: %u\n", GetLastError());
4301 hr = SHParseDisplayName(dirW, NULL, &pidl1, 0, NULL);
4302 ok(hr == S_OK, "failed %08x\n", hr);
4303 *dirW = 0;
4305 ok(len > 0, "GetSystemWow64DirectoryW failed: %u\n", GetLastError());
4306 hr = SHParseDisplayName(dirW, NULL, &pidl2, 0, NULL);
4307 ok(hr == S_OK, "failed %08x\n", hr);
4308 ret = ILIsEqual(pidl1, pidl2);
4309 ok(ret == FALSE, "expected different idls\n");
4310 ILFree(pidl1);
4311 ILFree(pidl2);
4312 }
4313
4314 IShellFolder_Release(desktop);
4315
4316 cdrom = get_empty_cddrive();
4317 if (!cdrom)
4318 skip("No empty cdrom drive found, skipping test\n");
4319 else
4320 {
4321 hr = SHParseDisplayName(cdrom, NULL, &pidl1, 0, NULL);
4322 ok(hr == S_OK, "failed %08x\n", hr);
4323 if (SUCCEEDED(hr)) ILFree(pidl1);
4324 }
4325}
static const WCHAR nameW[]
Definition: main.c:49
UINT WINAPI GetSystemWow64DirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
Definition: path.c:2421
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
Definition: path.c:2313
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
Definition: path.c:2352
HRESULT WINAPI SHParseDisplayName(LPCWSTR pszName, IBindCtx *pbc, LPITEMIDLIST *ppidl, SFGAOF sfgaoIn, SFGAOF *psfgaoOut)
Definition: pidl.c:1542
static WCHAR * get_empty_cddrive(void)
Definition: shlfolder.c:4222

Referenced by START_TEST().

◆ test_SHSimpleIDListFromPath()

static void test_SHSimpleIDListFromPath ( void  )
static

Definition at line 4572 of file shlfolder.c.

4573{
4574 const WCHAR adirW[] = {'C',':','\\','s','i','d','l','f','p','d','i','r',0};
4575 const CHAR adirA[] = "C:\\sidlfpdir";
4576 BOOL br, is_unicode = !(GetVersion() & 0x80000000);
4577
4578 LPITEMIDLIST pidl = NULL;
4579
4580 br = CreateDirectoryA(adirA, NULL);
4581 ok(br == TRUE, "CreateDirectory failed: %d\n", GetLastError());
4582
4583 if(is_unicode)
4584 pidl = SHSimpleIDListFromPath(adirW);
4585 else
4586 pidl = SHSimpleIDListFromPath((const WCHAR *)adirA);
4587 verify_pidl(pidl, adirW);
4588 ILFree(pidl);
4589
4590 br = RemoveDirectoryA(adirA);
4591 ok(br == TRUE, "RemoveDirectory failed: %d\n", GetLastError());
4592
4593 if(is_unicode)
4594 pidl = SHSimpleIDListFromPath(adirW);
4595 else
4596 pidl = SHSimpleIDListFromPath((const WCHAR *)adirA);
4597 verify_pidl(pidl, adirW);
4598 ILFree(pidl);
4599}
DWORD WINAPI GetVersion(void)
Definition: version.c:1458
PIDLIST_ABSOLUTE WINAPI SHSimpleIDListFromPath(PCWSTR)

Referenced by START_TEST().

◆ testwindow_wndproc()

static LRESULT CALLBACK testwindow_wndproc ( HWND  hwnd,
UINT  msg,
WPARAM  wparam,
LPARAM  lparam 
)
static

Definition at line 4873 of file shlfolder.c.

4874{
4876
4877 switch(msg){
4878 case WM_USER_NOTIFY:
4879 if(exp_data->missing_events > 0) {
4880 WCHAR *path1, *path2;
4881 LPITEMIDLIST *pidls = (LPITEMIDLIST*)wparam;
4882 HANDLE hLock = NULL;
4883
4886 ok(hLock != NULL, "SHChangeNotification_Lock returned NULL\n");
4887 }
4888
4889 ok(exp_data->signal == signal,
4890 "%s: expected notification type %x, got: %x\n",
4891 exp_data->id, exp_data->signal, signal);
4892
4893 trace("verifying pidls for: %s\n", exp_data->id);
4894 path1 = make_wstr(exp_data->path_1);
4895 path2 = make_wstr(exp_data->path_2);
4896 verify_pidl(pidls[0], path1);
4897 verify_pidl(pidls[1], path2);
4900
4901 exp_data->missing_events--;
4902
4905 }else
4906 ok(0, "Didn't expect a WM_USER_NOTIFY message (event: %x)\n", signal);
4907 return 0;
4908 }
4909 return DefWindowProcA(hwnd, msg, wparam, lparam);
4910}
@ lparam
Definition: SystemMenu.c:31
@ wparam
Definition: SystemMenu.c:30
EXTERN_C HANDLE WINAPI SHChangeNotification_Lock(HANDLE hTicket, DWORD dwOwnerPID, LPITEMIDLIST **lppidls, LPLONG lpwEventId)
EXTERN_C BOOL WINAPI SHChangeNotification_Unlock(HANDLE hLock)
int signal
Definition: except.c:84
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by register_testwindow_class().

◆ unk_fnAddRef()

static ULONG WINAPI unk_fnAddRef ( IUnknown iunk)
static

Definition at line 3007 of file shlfolder.c.

3008{
3009 return 2;
3010}

◆ unk_fnQueryInterface()

static HRESULT WINAPI unk_fnQueryInterface ( IUnknown iunk,
REFIID  riid,
void **  punk 
)
static

Definition at line 2988 of file shlfolder.c.

2989{
2991 UINT i;
2992 BOOL found = FALSE;
2993 for(i = 0; This->ifaces[i].id != NULL; i++)
2994 {
2995 if(IsEqualIID(This->ifaces[i].id, riid))
2996 {
2997 This->ifaces[i].count++;
2998 found = TRUE;
2999 break;
3000 }
3001 }
3002 if(!found)
3003 This->unknown++;
3004 return E_NOINTERFACE;
3005}
static IUnknownImpl * impl_from_IUnknown(IUnknown *iface)
Definition: shlfolder.c:2983

◆ unk_fnRelease()

static ULONG WINAPI unk_fnRelease ( IUnknown iunk)
static

Definition at line 3012 of file shlfolder.c.

3013{
3014 return 1;
3015}

Variable Documentation

◆ chnotify_tests

struct ChNotifyTest chnotify_tests[]
Initial value:
= {
{"MKDIR", 1, 0, SHCNE_MKDIR, "C:\\shell32_cn_test\\test", ""},
{"CREATE", 1, 0, SHCNE_CREATE, "C:\\shell32_cn_test\\test\\file.txt", ""},
{"RMDIR", 1, 0, SHCNE_RMDIR, "C:\\shell32_cn_test\\test", ""},
}
#define SHCNE_RMDIR
Definition: shlobj.h:1899
#define SHCNE_MKDIR
Definition: shlobj.h:1898
#define SHCNE_CREATE
Definition: shlobj.h:1896

Referenced by test_SHChangeNotify().

◆ DATAOBJ_GET_ITEM_FLAGS

IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static PWSTR *static PWSTR *static DATAOBJ_GET_ITEM_FLAGS

Definition at line 60 of file shlfolder.c.

◆ DWORD

Definition at line 52 of file shlfolder.c.

Referenced by test_CallForAttributes().

◆ exp_data

◆ fsbd

IFileSystemBindData fsbd = { &fsbdVtbl }
static

Definition at line 4676 of file shlfolder.c.

Referenced by fsbd_QueryInterface(), and test_ParseDisplayNamePBC().

◆ fsbdVtbl

IFileSystemBindDataVtbl fsbdVtbl
static
Initial value:
= {
}
static ULONG WINAPI fsbd_Release(IFileSystemBindData *fsbd)
Definition: shlfolder.c:4618
static ULONG WINAPI fsbd_AddRef(IFileSystemBindData *fsbd)
Definition: shlfolder.c:4613
static HRESULT WINAPI fsbd_SetFindData(IFileSystemBindData *fsbd, const WIN32_FIND_DATAW *pfd)
Definition: shlfolder.c:4623
static HRESULT WINAPI fsbd_QueryInterface(IFileSystemBindData *fsbd, REFIID riid, void **ppv)
Definition: shlfolder.c:4602

Definition at line 4668 of file shlfolder.c.

Referenced by test_ParseDisplayNamePBC().

◆ GPFIDL_FLAGS

Definition at line 65 of file shlfolder.c.

◆ HANDLE

IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static HANDLE

Definition at line 58 of file shlfolder.c.

◆ hr

HRESULT hr = S_OK

Definition at line 183 of file shlfolder.c.

Referenced by __loctotime32_t(), __loctotime64_t(), CFileSysEnum::_AddFindResult(), CBandSiteMenu::_AddISFBandToMenu(), CThreadMgrEventSink::_Advise(), CActiveLanguageProfileNotifySink::_Advise(), CInputContextOwner::_Advise(), CCompartmentEventSink::_Advise(), CTextEventSink::_Advise(), CDefViewBckgrndMenu::_bCanPaste(), _BindToObject(), CDefViewBckgrndMenu::_bIsDesktopBrowserMenu(), _BSTR_CY(), _BSTR_DEC(), CMenuBand::_CallCB(), CMenuBand::_CancelCurrentPopup(), _CDataObject_CreateInstance(), _CFontMenu_CreateInstance(), _check_cur_pos(), _check_default_props(), _check_process_enum(), _check_property(), _check_range(), _check_reobject_struct(), _check_selection(), _check_set_props(), _check_typeinfo(), _clipboard_range_contains(), CMenuDeskBar::_CloseBar(), _com_issue_error(), _com_issue_errorex(), _com_raise_error(), CExplorerBand::_CompareTreeItems(), CRegPropertyBag::_CopyStreamIntoBuff(), _CorExeMain(), _create_object(), FxInterruptWaitblock::_CreateAndInit(), FxInterruptThreadpool::_CreateAndInit(), FxMessageDispatch::_CreateAndInitialize(), CViewStatePropertyBag::_CreateBag(), CBandSiteMenu::_CreateBuiltInISFBand(), CFSFolder::_CreateExtensionUIObject(), CFSFolder::_CreateIDListFromName(), CBandSiteMenu::_CreateMenuPart(), CBandSiteMenu::_CreateNewISFBand(), CMruNode::_CreateNode(), CFSFolder::_CreateShellExtInstance(), CTipbarWnd::_CreateThread(), CExplorerBand::_CreateTreeView(), CExplorerBand::_DestroyTreeView(), CDefView::_DoCopyToMoveToFolder(), CRecyclerDropTarget::_DoDeleteDataObject(), CRecyclerDropTarget::_DoDeleteThreadProc(), CFSDropTarget::_DoDrop(), CFSDropTarget::_DoDropThreadProc(), CDefView::_DoFolderViewCB(), CDefaultContextMenu::_DoInvokeCommandCallback(), _expect_children(), _expect_list_len(), _expect_no_children(), _expect_parse_error(), CViewStatePropertyBag::_FindNearestInheritBag(), FxDevice::_GetDeviceProperty(), CFSFolder::_GetDropTarget(), CFSDropTarget::_GetEffectFromMenu(), CFSFolder::_GetIconHandler(), CMruBase::_GetItem(), CBandSiteMenu::_GetMenuIdFromISFBand(), CViewStatePropertyBag::_GetMRUSlots(), CDesktopUpgradePropertyBag::_GetOldDesktopViewStream(), CMruNode::_GetPidlSlot(), CBandSiteMenu::_GetQLaunchPidl(), CViewStatePropertyBag::_GetRegKey(), CRegPropertyBag::_GetStreamSize(), _gif_inputfunc(), CMruLongList::_ImportShortList(), FxDriver::_InitializeDriverName(), _insert_reobject(), CBandSiteBase::_IsBandDeletable(), CMenuDeskBar::_IsSubMenuParent(), CViewStatePropertyBag::_IsSystemFolder(), CMenuBand::_KeyboardItemChange(), CMenuBand::_KillPopupTimers(), CMenuBand::_MenuItemSelect(), CDefView::_MergeToolbar(), _move_to_element(), CExplorerBand::_NavigateToCurrentFolder(), CDesktopUpgradePropertyBag::_NewStreamFromOld(), _next_attribute(), CMenuDeskBar::_OnActivate(), CBandSiteBase::_OnContextMenu(), CMenuDeskBar::_OnNotify(), CMenuBand::_OnPopupSubMenu(), FxDevice::_OpenDeviceRegistryKey(), CDesktopFolder::_ParseDisplayNameByParent(), _ParsePathToPidl(), CFSFolder::_ParseSimple(), CViewStatePropertyBag::_PruneMRUTree(), _read_node(), _read_value_char(), CRegPropertyBag::_ReadBinary(), _reader_name(), _reader_namespace(), _reader_prefix(), _reader_qname(), _reader_value(), CDesktopUpgradePropertyBag::_ReadItemPositions(), CMruShortList::_RemoveSlot(), CMruLongList::_RemoveSlot(), CFSDropTarget::_RepositionItems(), _reset_range(), _reset_selection(), _ROS_FAILED_HELPER(), _set_input_string(), _set_props(), _SHExpandEnvironmentStrings(), _SHGetAllUsersProfilePath(), _SHGetCurrentVersionPath(), _SHGetDefaultValue(), _SHGetProfilesValue(), _SHGetUserProfilePath(), _SHGetUserShellFolderPath(), _SHRegisterCommonShellFolders(), _SHRegisterFolders(), _SHRegisterUserShellFolders(), _SHStrDupAA(), _SHStrDupAW(), _test_apt_type(), _test_caret_item_ScriptXtoCP(), _test_clone(), _test_doc_load_from_path(), _test_IObjectSafety_common(), _test_IObjectSafety_set(), _test_item_ScriptXtoX(), _test_items_ok(), _test_open(), _test_provideclassinfo(), _test_reader_container_format(), _test_server_open(), _test_shape_ok(), CMenuBand::_TrackContextMenu(), CInputContextOwner::_Unadvise(), CCompartmentEventSink::_Unadvise(), CTextEventSink::_Unadvise(), CThreadMgrEventSink::_Unadvise(), CActiveLanguageProfileNotifySink::_Unadvise(), CTipbarThread::_UnadviseItemsSink(), CTipbarThread::_UninitItemList(), _unset_props(), CRegPropertyBag::_WriteStream(), AccessibleChildren(), ACMStream_fnInfo(), ACMStream_fnRead(), ACMStream_fnReadFormat(), ACMStream_fnSetFormat(), ACMStream_fnWrite(), ACMWrapper_create(), ACMWrapper_Receive(), acquire_tests(), SEALED_::SEALED_::AcquireDispTypeInfo(), SEALED_::AcquireDispTypeInfo(), SEALED_::Activate(), activate_given_ts(), activate_textservices(), CicBridge::ActivateIMMX(), CInputProcessorProfiles::ActivateLanguageProfile(), ActiveScriptSite_GetItemInfo(), ActiveScriptSite_OnScriptError(), add_bezier_points(), add_cabinet_storage(), add_cache_entry(), add_icon_to_control(), add_keyitem_pair(), add_storages_to_table(), add_ull_as_bstr_property(), add_zone_to_listview(), CTrayBandSite::AddBand(), CMenuSite::AddBand(), BtrfsSend::AddClone(), CAddressEditBox::AddComboBoxItem(), CMruBase::AddData(), AddDataBlock(), AddDesktopItemW(), AddFileSysBindCtx(), CRegTreeOptions::AddItemsFromRegistry(), AddItemW(), AddListViewItems(), CDrvDefExt::AddMainPage(), CNetConnectionPropertyUi::AddPages(), CShellLink::AddPages(), CDrvDefExt::AddPages(), CFileDefExt::AddPages(), CFolderOptions::AddPages(), AddPropSheetHandlerPages(), AddScreenSaver(), CDefaultContextMenu::AddShellExtensionsToMenu(), CShellMenuCallback::AddStartMenuItems(), CDefaultContextMenu::AddStaticContextMenusToMenu(), CISFBand::AddToolbarButtons(), CShellDispatch::AddToRecent(), AddUrlToFavorites(), AddWallpapersFromDirectory(), CTrayWindow::AdjustSizerRect(), adv_install(), anonymous_namespace{mstscax.cpp}::CoClass::Advise(), anonymous_namespace{mstscax.cpp}::CConnectionPoint::Advise(), advise_sink(), CKsProxy::AdvisePeriodic(), CLBarItemBase::AdviseSink(), CKsProxy::AdviseTime(), all_renderers_seek(), alloc_input_buffer(), FxIrp::AllocateIrp(), AMFilterData_ParseFilterData(), AMGetErrorTextA(), AMGetErrorTextW(), AMovieDllRegisterServer2(), AMStreamConfig_SetFormat(), AntiMoniker_CreateInstance(), AntiMonikerImpl_QueryInterface(), apartment_getclassobject(), apartment_hostobject(), apartment_hostobject_in_hostapt(), apartment_hostobject_thread(), apply_device_state(), CShellBrowser::ApplyBrowserDefaultFolderSettings(), ApplyTheme(), assemble_shader(), assembleshader_test(), assembly_create(), assembly_from_hmodule(), assembly_get_pubkey_token(), AssocQ(), async_exec_query(), AsyncBindStatusCallback_GetBindInfo(), AtlAxAttachControl(), ATL::AtlComModuleGetClassObject(), ATL::AtlComModuleRegisterClassObjects(), ATL::AtlComModuleRevokeClassObjects(), ATL::AtlThrowImp(), OleInPlaceClient::attach_control(), audiomediastream_create(), AutoComplete_AddMRU(), AutoComplete_LoadList(), AutomationObject_GetIDsOfNames(), AutomationObject_GetTypeInfo(), AutomationObject_Invoke(), AVIBuildFilterA(), AVIDec_create(), AVIDec_Receive(), AVIDec_SetMediaType(), AVIFILE_CreateACMStream(), AVIFILE_CreateAVIFile(), AVIFILE_CreateClassFactory(), AVIFILE_CreateICMStream(), AVIFILE_CreateWAVFile(), AVIFILE_LoadFile(), AVIFILE_LoadIndex(), AVIFILE_OpenCompressor(), AVIFILE_SaveFile(), AVIFileOpenA(), AVIFileOpenW(), AVIMakeCompressedStream(), AviMux_Run(), AviMux_Stop(), AviMuxIn_Disconnect(), AviMuxIn_MemInputPin_NotifyAllocator(), AviMuxIn_MemInputPin_ReceiveCanBlock(), AviMuxIn_MemInputPin_ReceiveMultiple(), AviMuxIn_Receive(), AviMuxIn_ReceiveConnection(), AviMuxOut_AttemptConnection(), AviMuxOut_Connect(), AviMuxOut_DecideAllocator(), AviMuxOut_Disconnect(), AVISaveVA(), AVISplitter_create(), AVISplitter_first_request(), AVISplitter_InputPin_PreConnect(), AVISplitter_next_request(), AVISplitter_ProcessStreamList(), AVISplitter_Receive(), AVISplitter_Sample(), AVISplitter_SendEndOfFile(), AVISplitter_thread_reader(), AVIStreamBeginStreaming(), AVIStreamCreate(), AVIStreamEndStreaming(), AVIStreamOpenFromFileA(), AVIStreamOpenFromFileW(), BackgroundCopyJob_AddFileSet(), BackgroundCopyJob_SetDescription(), BackgroundCopyJob_SetNotifyInterface(), BackgroundCopyJobConstructor(), BackgroundCopyManager_GetErrorDescription(), BackgroundCopyManager_GetJob(), bad_thread_proc(), CISFBand::BandInfoChanged(), BaseControlVideoImpl_CheckSourceRect(), BaseControlVideoImpl_Invoke(), BaseControlVideoImpl_put_DestinationHeight(), BaseControlVideoImpl_put_DestinationLeft(), BaseControlVideoImpl_put_DestinationTop(), BaseControlVideoImpl_put_DestinationWidth(), BaseControlVideoImpl_put_SourceHeight(), BaseControlVideoImpl_put_SourceLeft(), BaseControlVideoImpl_put_SourceTop(), BaseControlVideoImpl_put_SourceWidth(), BaseControlWindow_Init(), BaseControlWindowImpl_Invoke(), BaseControlWindowImpl_SetWindowForeground(), BaseDispatch_Init(), BaseInputPinImpl_BeginFlush(), BaseInputPinImpl_EndFlush(), BaseInputPinImpl_EndOfStream(), BaseInputPinImpl_ReceiveConnection(), BaseMemAllocator_Commit(), BaseMemAllocator_Decommit(), BaseMemAllocator_GetBuffer(), BaseMemAllocator_GetProperties(), BaseMemAllocator_ReleaseBuffer(), BaseMemAllocator_SetProperties(), BaseOutputPinImpl_Active(), BaseOutputPinImpl_AttemptConnection(), BaseOutputPinImpl_BreakConnect(), BaseOutputPinImpl_Connect(), BaseOutputPinImpl_DecideAllocator(), BaseOutputPinImpl_Deliver(), BaseOutputPinImpl_Disconnect(), BaseOutputPinImpl_GetDeliveryBuffer(), BaseOutputPinImpl_Inactive(), BasePinImpl_ConnectedTo(), BasePinImpl_ConnectionMediaType(), BasePinImpl_Disconnect(), BaseRenderer_Init(), BaseRenderer_InputPin_BeginFlush(), BaseRenderer_InputPin_Disconnect(), BaseRenderer_InputPin_EndFlush(), BaseRenderer_InputPin_EndOfStream(), BaseRenderer_InputPin_ReceiveConnection(), BaseRendererImpl_EndOfStream(), BaseRendererImpl_GetState(), BaseRendererImpl_Receive(), BaseRendererImpl_Run(), BaseRendererImpl_SetSyncSource(), BasicAudio_get_Balance(), BasicAudio_get_Volume(), BasicAudio_GetIDsOfNames(), BasicAudio_GetTypeInfo(), BasicAudio_GetTypeInfoCount(), BasicAudio_Invoke(), BasicAudio_put_Balance(), BasicAudio_put_Volume(), BasicAudioImpl_Invoke(), BasicVideo2_GetPreferredAspectRatio(), BasicVideo_get_AvgTimePerFrame(), BasicVideo_get_BitErrorRate(), BasicVideo_get_BitRate(), BasicVideo_get_DestinationHeight(), BasicVideo_get_DestinationLeft(), BasicVideo_get_DestinationTop(), BasicVideo_get_DestinationWidth(), BasicVideo_get_SourceHeight(), BasicVideo_get_SourceLeft(), BasicVideo_get_SourceTop(), BasicVideo_get_SourceWidth(), BasicVideo_get_VideoHeight(), BasicVideo_get_VideoWidth(), BasicVideo_GetCurrentImage(), BasicVideo_GetDestinationPosition(), BasicVideo_GetIDsOfNames(), BasicVideo_GetSourcePosition(), BasicVideo_GetTypeInfo(), BasicVideo_GetTypeInfoCount(), BasicVideo_GetVideoPaletteEntries(), BasicVideo_GetVideoSize(), BasicVideo_Invoke(), BasicVideo_IsUsingDefaultDestination(), BasicVideo_IsUsingDefaultSource(), BasicVideo_put_DestinationHeight(), BasicVideo_put_DestinationLeft(), BasicVideo_put_DestinationTop(), BasicVideo_put_DestinationWidth(), BasicVideo_put_SourceHeight(), BasicVideo_put_SourceLeft(), BasicVideo_put_SourceTop(), BasicVideo_put_SourceWidth(), BasicVideo_SetDefaultDestinationPosition(), BasicVideo_SetDefaultSourcePosition(), BasicVideo_SetDestinationPosition(), BasicVideo_SetSourcePosition(), CEnumMergedFolder::Begin(), BeginRenameOfShellViewSelection(), bind_callback_OnObjectAvailable(), bind_callback_OnStopBinding(), bind_url(), BindAsyncMoniker(), BindCtx_CreateWithMode(), BindCtx_GetMode(), BindCtx_RegisterObjectParam(), BindCtxImpl_RegisterObjectBound(), BindCtxImpl_RegisterObjectParam(), BindStatusCallback_OnStopBinding(), BindToDesktop(), CCommonFolder< TSelf, TItemId, TExtractIcon >::BindToObject(), CMergedFolder::BindToObject(), BindToObject(), CFindFolder::BindToObject(), CDesktopFolder::BindToObject(), CDrivesFolder::BindToObject(), CFSFolder::BindToObject(), CMyDocsFolder::BindToObject(), CRegFolder::BindToObject(), CMruNode::BindToSlot(), CMyDocsFolder::BindToStorage(), BitmapClipper_Initialize(), BitmapDecoderInfo_MatchesPattern(), BitmapImpl_Create(), BitmapImpl_SetPalette(), BitmapScaler_CopyPixels(), BitmapScaler_Initialize(), blit_gif_frame(), BlockChainStream_GetHeadOfChain(), BlockChainStream_ReadAt(), BlockChainStream_UpdateIndexCache(), BlockChainStream_WriteAt(), BmpDecoder_Initialize(), BmpDecoder_QueryCapability(), BmpDecoder_ReadHeaders(), BmpEncoder_CreateNewFrame(), BmpEncoder_GetEncoderInfo(), BmpFrameDecode_CopyPalette(), BmpFrameDecode_CopyPixels(), BmpFrameDecode_ReadABGRasBGR(), BmpFrameDecode_ReadRGB8(), BmpFrameDecode_ReadRLE4(), BmpFrameDecode_ReadRLE8(), BmpFrameDecode_ReadUncompressed(), BmpFrameEncode_Commit(), BmpFrameEncode_SetPalette(), BmpFrameEncode_WritePixels(), BmpFrameEncode_WriteSource(), BrFolder_CheckValidSelection(), BrFolder_Expand(), BrFolder_ExpandToString(), BrFolder_GetChildrenEnum(), BrFolder_GetItemAttributes(), BrFolder_InitTreeView(), BrFolder_NewFolder(), BrFolder_OnContextMenu(), BrFolder_Treeview_Expand(), BrFolder_Treeview_Rename(), CShellBrowser::BrowseObject(), BtrfsSend::BrowseParent(), CDefaultContextMenu::BrowserFlagsFromVerb(), CShellBrowser::BrowseToPIDL(), bsc_OnDataAvailable(), bsc_OnStartBinding(), bsc_OnStopBinding(), buffer_init(), buffer_sync_apple(), build_directshowfilters_tree(), build_directxfiles_tree(), build_displaydevices_tree(), build_file_mask(), build_format_strings(), build_information_tree(), build_systeminfo_tree(), build_uri(), CShellBrowser::BuildExplorerBandCategory(), cabinet_open_stream(), cabinet_read_stream(), cabinet_seek_stream(), cache_across_threads_test(), cache_InstallAssembly(), cache_QueryAssemblyInfo(), cache_UninstallAssembly(), calc_sizes(), call_RenderFile_multithread(), call_script(), CallShellDimScreen(), CShellDispatch::CanStartStopService(), CATIDEnumGUID_Next(), ATL::CAtlFileMappingBase::CAtlFileMappingBase(), CB_ThemedPaint(), CBDADeviceControl_fnConstructor(), CBDAPinControl_fnConstructor(), CControlNode_fnConstructor(), CCPLExtractIcon_CreateInstance(), CDefFolderMenu_Create2(), CDevSettings_EnumFormatEtc(), CDevSettings_GetCanonicalFormatEtc(), CDevSettings_GetData(), CDrivesExtractIcon_CreateInstance(), CF_CreateDirectDraw(), CF_CreateDirectDrawClipper(), CFSExtractIcon_CreateInstance(), CGuidItemExtractIcon_CreateInstance(), change_property(), check_admin_rights(), check_bitmap_format(), check_bmp_format(), check_convertible(), check_dds_pixel_format_(), check_display_name_(), check_dotnet20(), check_dropdown_(), check_enum_cache(), check_expect_(), check_generated_adjacency_(), check_gif_format(), check_ID3DXRenderToSurface(), check_iface_marshal(), check_iml_data(), check_index_buffer_(), check_interface_(), check_known_folder(), check_messages(), check_output(), check_output_raw(), check_persist_options_(), check_png_format(), check_safearray(), check_storage_contents(), check_texture_requirements(), check_tiff_format(), check_url_canonicalize(), check_url_combine(), check_vertex_buffer_(), check_writer_state(), COutputPin::CheckCapabilities(), CKsProxy::CheckCapabilities(), CBDADeviceControl::CheckChanges(), CheckCircularConnection(), CheckError(), CInputPin::CheckFormat(), COutputPin::CheckFormat(), CheckThemeSignature(), CInputPin::CInputPin(), CInternetFolder_CreateInstance(), CKsClockForwarder_Constructor(), CKsNode_Constructor(), CKsQualityForwarder_Constructor(), class_object_Get(), class_object_GetMethod(), class_object_Next(), class_object_NextMethod(), class_object_Put(), ClassFactoryImpl_CreateInstance(), ClassMoniker_BindToObject(), ClassMoniker_CreateFromDisplayName(), ClassMoniker_CreateInstance(), ClassMoniker_Load(), ClassMoniker_QueryInterface(), ClassMoniker_Save(), CMruNode::Clear(), clear_depth_surface(), clear_normals(), ClearCompartment(), Client_EnumVARIANT_Next(), ClientIdentity_QueryInterface(), ClientIdentity_QueryMultipleInterfaces(), ClientRpcChannelBuffer_GetBuffer(), ClientRpcChannelBuffer_SendReceive(), clipboard_wnd_proc(), CProfilesEnumGuid::Clone(), CEnumTfDocumentMgr::Clone(), CEnumTfLanguageProfiles::Clone(), anonymous_namespace{mstscax.cpp}::CEnumConnectionPoints::Clone(), anonymous_namespace{mstscax.cpp}::CEnumConnections::Clone(), anonymous_namespace{mstscax.cpp}::CoClass::Close(), CQuickLaunchBand::CloseDW(), CloseRecycleBinHandle(), CUIFTheme::CloseThemeData(), CloseThemeData(), CLRMetaHost_GetVersionFromFile(), CLRRuntimeHost_ExecuteInDefaultAppDomain(), CLRRuntimeInfo_GetInterface(), CLRRuntimeInfo_GetRuntimeDirectory(), CLRRuntimeInfo_GetRuntimeHost(), CLRRuntimeInfo_GetVersionString(), CLRRuntimeInfo_LoadLibrary(), CLSIDEnumGUID_Next(), CMruClassFactory_CreateInstance(), CNetFolderExtractIcon_CreateInstance(), CNetworkConnections::CNetworkConnections(), CoCopyProxy(), ATL::CComPtr< T >::CoCreateInstance(), CoDisconnectObject(), CoGetInstanceFromFile(), CoGetInstanceFromIStorage(), CoGetMarshalSizeMax(), CoGetObject(), CoGetObjectContext(), CoGetPSClsid(), CoImpersonateClient(), CoInitializeEx(), CoInternetCombineIUri(), CoInternetCombineUrlEx(), CoInternetParseIUri(), col_IDirectMusicObject_ParseDescriptor(), FindProgramDlg::collect_programs_callback(), ColorContext_InitializeFromFilename(), ColorTransform_Initialize(), CDefView::ColumnListChanged(), COM_GetRegisteredClassObject(), COM_OpenKeyForAppIdFromCLSID(), CoMarshalInterface(), combine_uri(), COMCAT_ICatInformation_EnumClassesOfCategories(), COMCAT_IEnumCATEGORYINFO_Next(), CKsAllocator::Commit(), CScanningTunner::CommitChanges(), CBDADeviceControl::CommitChanges(), CommitDecommitTest(), common_loctotime_t(), CommonDecoder_CreateInstance(), CommonDecoder_GetFrame(), CommonDecoder_Initialize(), CommonDecoder_QueryCapability(), CommonDecoderFrame_Block_GetCount(), CommonDecoderFrame_Block_GetReaderByIndex(), CommonDecoderFrame_CopyPalette(), CommonDecoderFrame_CopyPixels(), CommonDecoderFrame_GetColorContexts(), CommonDecoderFrame_GetMetadataQueryReader(), CommonDecoderFrame_InitializeMetadata(), CommonEncoder_Commit(), CommonEncoder_CreateNewFrame(), CommonEncoder_GetEncoderInfo(), CommonEncoder_Initialize(), CommonEncoder_SetPalette(), CommonEncoderFrame_Commit(), CommonEncoderFrame_Initialize(), CommonEncoderFrame_SetPalette(), CommonEncoderFrame_SetPixelFormat(), CommonEncoderFrame_SetResolution(), CommonEncoderFrame_SetSize(), CommonEncoderFrame_WritePixels(), CommonEncoderFrame_WriteSource(), compact_mesh(), CShellItem::Compare(), compare_bitmap_data(), compare_imp(), compare_mesh(), compare_metadata(), compare_text_outline_mesh(), CCabFolder::CompareID(), CNtObjectFolder::CompareIDs(), CRegistryFolder::CompareIDs(), CCommonFolder< TSelf, TItemId, TExtractIcon >::CompareIDs(), CFindFolder::CompareIDs(), CFSFolder::CompareIDs(), CMyDocsFolder::CompareIDs(), CRecycleBin::CompareIDs(), CCommonFolder< TSelf, TItemId, TExtractIcon >::CompareName(), compile_pixel_shader9(), compile_shader(), COMPOBJ_DllList_Add(), component_GetProgressKeys(), ComponentEnum_Next(), ComponentEnum_Skip(), ComponentFactory_CreateMetadataReader(), ComponentFactory_CreateMetadataReaderFromContainer(), ComponentInfo_GetGuidList(), ComponentInfo_GetGUIDValue(), compose_base85_guid(), CompositeMoniker_CreateInstance(), CompositeMonikerMarshalImpl_GetMarshalSizeMax(), CompositeMonikerMarshalImpl_MarshalInterface(), CompositeMonikerMarshalImpl_UnmarshalInterface(), CompositeMonikerROTDataImpl_GetComparisonData(), Compress(), compute_shader_probe9(), ConfigFileHandler_startElement(), ConfigInterleaving_put_Mode(), configure_write_source(), CicBridge::ConfigureGeneral(), CicBridge::ConfigureRegisterWord(), anonymous_namespace{mstscax.cpp}::CoClass::Connect(), COutputPin::Connect(), CPin::Connect(), ConnectionPointImpl_EnumConnections(), contentHandler_putDocumentLocator(), contentHandler_startElement(), Context_CTI_GetCurrentThreadType(), anonymous_namespace{mstscax.cpp}::CoClass::ContextSensitiveHelp(), CQuickLaunchBand::ContextSensitiveHelp(), ControlSite_TranslateAccelerator(), convert_vertex_buffer(), ConvertFromREFTIME(), ConvertINetString(), COutputPin::ConvertTimeFormat(), CKsProxy::ConvertTimeFormat(), ConvertToREFTIME(), copy_file(), copy_folder(), copy_headers_to_buf(), copy_mipmap_chain(), copy_or_cut(), copy_render_target_to_cube_texture_face(), copy_sample(), copy_statdata(), ATL::CAtlFileMappingBase::CopyFrom(), copypixels_to_24bppBGR(), copypixels_to_24bppRGB(), copypixels_to_32bppGrayFloat(), copypixels_to_32bppPBGRA(), copypixels_to_32bppPRGBA(), copypixels_to_32bppRGBA(), copypixels_to_64bppRGBA(), copypixels_to_8bppGray(), copypixels_to_8bppIndexed(), CopyStreamUI(), CopyTextToClipboard(), CoQueryClientBlanket(), CoQueryProxyBlanket(), CorDebug_CreateProcess(), CorDebug_SetManagedHandler(), CoRegisterClassObject(), CoRegisterInitializeSpy(), CoReleaseMarshalData(), CoRevertToSelf(), CoRevokeClassObject(), corruntimehost_GetDefaultDomain(), CoSetProxyBlanket(), CoUnmarshalInterface(), count_moniker_matches(), COutputPin::COutputPin(), cowait_unmarshal_thread(), CoWaitForMultipleHandles(), CPrintersExtractIconW_CreateInstane(), crash_couninitialize_proc(), create_and_init_encoder(), create_assoc_enum(), create_avisplitter(), create_bitmap_from_source_rect(), create_body_offset_list(), create_configuration(), IPCtrlWindow< BASE, SMARTPTR >::create_control(), create_decoder(), create_default_samplers(), create_device(), create_device1(), create_device2(), create_device2_without_ds(), create_directdraw(), create_directinput_instance(), create_dsound_renderer(), create_encoder(), create_EnumMoniker(), create_graph(), create_IMD_metadata_reader(), create_input_pin(), create_instance_enum(), create_list(), create_map_from_stream(), create_metadata_reader(), create_metadata_reader_from_container_iterator(), create_metadata_reader_iterator(), create_moniker_from_url(), create_monodata(), create_optimal_palette(), create_outline(), create_path(), create_qualifier_enum(), create_root_IDxDiagContainer(), create_server_xhr(), create_session(), create_shortcut(), create_signature(), create_signature_columns_and_data(), create_signature_table(), create_storage(), create_storage_from_def(), create_storagefile(), create_stream(), create_stream_from_map(), create_stream_from_string(), create_stream_on_data(), create_stream_on_file(), create_sub_body(), create_system_ports_list(), create_test(), create_test_file(), create_test_guid(), create_textstream(), create_unknown_metadata_reader(), create_video_renderer(), create_view(), create_view_window2_hook(), create_windowed_editor(), create_writer_output(), create_xhr(), CreateAndInitXMLDOMDocument(), CreateAntiMoniker(), CreateAssemblyEnum(), CreateAssemblyNameObject(), CreateBindCtx(), CreateBindCtxWithOpts(), CreateByteArray(), CreateClassMoniker(), CKsProxy::CreateClockInstance(), CreateCommand(), CreateComponentEnumerator(), CreateComponentInfo(), UIComposition::CreateCompositionWindow(), CreateCplAbsoluteParsingPath(), CreateDataCache(), CreateDebuggingInterfaceFromVersion(), CThreadMgr::CreateDocumentMgr(), CreateDropTarget(), CreateEditableStream(), CreateExtractIcon(), CreateFileMoniker(), CreateFileSysBindCtx(), CreateFilterInstanceAndLoadFile(), CreateGenericComposite(), CreateIDataObject(), CreateIMAPTransport(), CicBridge::CreateInputContext(), anonymous_namespace{mstscax.cpp}::CoClass::CreateInstance(), CCompartmentMgr::CreateInstance(), anonymous_namespace{mstscax.cpp}::ClassFactory::CreateInstance(), CEnumTfLanguageProfiles::CreateInstance(), SEALED_::CreateInstance(), anonymous_namespace{mstscax.cpp}::ClassFactory::CreateInstanceLic(), CreateInternetShortcut(), CreateItemMoniker(), CreateMainShortcut(), CNewMenu::CreateNewFolder(), CNewMenu::CreateNewItem(), CKsProxy::CreateNodeInstance(), CreateNotificationObject(), CreateObjectsFromPersistFolder(), CInputPin::CreatePin(), COutputPin::CreatePin(), CInputPin::CreatePinHandle(), COutputPin::CreatePinHandle(), CKsProxy::CreatePins(), CreatePOP3Transport(), CreatePosPassThru(), CreateProxyFromTypeInfo(), CShellBrowser::CreateRelativeBrowsePIDL(), CreateRenderingWindow(), CreateShellItemFromParse(), CreateShellLink(), CreateShortcut(), CreateSMTPTransport(), CreateStartMenu(), CreateStubFromTypeInfo(), createtestfilter(), CBDADeviceControl::CreateTopology(), CreateUri(), CreateUrlShortcut(), CZipFolder::CreateViewObject(), CFindFolder::CreateViewObject(), CFontExt::CreateViewObject(), CNetworkConnections::CreateViewObject(), CControlPanelFolder::CreateViewObject(), CDesktopFolder::CreateViewObject(), CDrivesFolder::CreateViewObject(), CFSFolder::CreateViewObject(), CMyDocsFolder::CreateViewObject(), CNetFolder::CreateViewObject(), CPrinterFolder::CreateViewObject(), CRecycleBin::CreateViewObject(), CCommonFolder< TSelf, TItemId, TExtractIcon >::CreateViewObject(), anonymous_namespace{mstscax.cpp}::CoClass::CreateVirtualChannels(), CreateXmlReader(), CreateXmlReaderInputWithEncodingName(), CreateXmlWriter(), CreateXmlWriterOutputWithEncodingCodePage(), CreateXmlWriterOutputWithEncodingName(), CRecyclerExtractIcon_CreateInstance(), CSendToMenu::CSendToMenu(), CStdStubBuffer_Invoke(), CtfAImmActivate(), CtfAImmDeactivate(), CtfImeCreateThreadMgr(), CtfImeDestroyThreadMgr(), CtfImeProcessCicHotkey(), CtfImmCoInitialize(), CtfImmGetGuidAtom(), CtfImmRestoreToolbarWnd(), CtfImmTIMActivate(), CtfImmTIMCreateInputContext(), CTrayBandSite_CreateInstance(), cubetexture_init(), CustomMarshal_MarshalInterface(), d3d2_CreateDevice(), d3d3_CreateDevice(), d3d3_CreateVertexBuffer(), d3d3_EnumDevices(), d3d3_FindDevice(), d3d7_CreateDevice(), d3d7_CreateVertexBuffer(), d3d7_EnumDevices(), d3d7_EnumZBufferFormats(), d3d8_CheckDepthStencilMatch(), d3d8_CheckDeviceFormat(), d3d8_CheckDeviceMultiSampleType(), d3d8_CheckDeviceType(), d3d8_CreateDevice(), d3d8_device_BeginScene(), d3d8_device_BeginStateBlock(), d3d8_device_Clear(), d3d8_device_create_surface(), d3d8_device_CreateAdditionalSwapChain(), d3d8_device_CreateCubeTexture(), d3d8_device_CreateIndexBuffer(), d3d8_device_CreatePixelShader(), d3d8_device_CreateStateBlock(), d3d8_device_CreateTexture(), d3d8_device_CreateVertexBuffer(), d3d8_device_CreateVertexShader(), d3d8_device_CreateVolumeTexture(), d3d8_device_DrawIndexedPrimitive(), d3d8_device_DrawIndexedPrimitiveUP(), d3d8_device_DrawPrimitive(), d3d8_device_DrawPrimitiveUP(), d3d8_device_EndScene(), d3d8_device_EndStateBlock(), d3d8_device_get_fvf_declaration(), d3d8_device_GetClipPlane(), d3d8_device_GetClipStatus(), d3d8_device_GetDepthStencilSurface(), d3d8_device_GetDeviceCaps(), d3d8_device_GetDisplayMode(), d3d8_device_GetFrontBuffer(), d3d8_device_GetLight(), d3d8_device_GetLightEnable(), d3d8_device_GetPixelShaderConstant(), d3d8_device_GetPixelShaderFunction(), d3d8_device_GetRasterStatus(), d3d8_device_GetRenderTarget(), d3d8_device_GetStreamSource(), d3d8_device_GetVertexShaderConstant(), d3d8_device_GetVertexShaderFunction(), d3d8_device_LightEnable(), d3d8_device_prepare_index_buffer(), d3d8_device_prepare_vertex_buffer(), d3d8_device_ProcessVertices(), d3d8_device_Reset(), d3d8_device_SetClipPlane(), d3d8_device_SetClipStatus(), d3d8_device_SetCursorProperties(), d3d8_device_SetLight(), d3d8_device_SetPixelShaderConstant(), d3d8_device_SetRenderTarget(), d3d8_device_SetStreamSource(), d3d8_device_SetTexture(), d3d8_device_SetVertexShaderConstant(), d3d8_device_UpdateTexture(), d3d8_device_ValidateDevice(), d3d8_EnumAdapterModes(), d3d8_GetAdapterCount(), d3d8_GetAdapterDisplayMode(), d3d8_GetAdapterIdentifier(), d3d8_GetAdapterModeCount(), d3d8_GetAdapterMonitor(), d3d8_GetDeviceCaps(), d3d8_indexbuffer_Lock(), d3d8_pixel_shader_init(), d3d8_RegisterSoftwareDevice(), d3d8_resource_get_private_data(), d3d8_resource_set_private_data(), d3d8_surface_acquire_rendertarget_view(), d3d8_surface_GetContainer(), d3d8_surface_LockRect(), d3d8_surface_UnlockRect(), d3d8_swapchain_create(), d3d8_swapchain_GetBackBuffer(), d3d8_swapchain_Present(), d3d8_texture_2d_AddDirtyRect(), d3d8_texture_2d_GetLevelDesc(), d3d8_texture_2d_LockRect(), d3d8_texture_2d_UnlockRect(), d3d8_texture_3d_AddDirtyBox(), d3d8_texture_3d_GetLevelDesc(), d3d8_texture_3d_LockBox(), d3d8_texture_3d_UnlockBox(), d3d8_texture_cube_AddDirtyRect(), d3d8_texture_cube_GetLevelDesc(), d3d8_texture_cube_LockRect(), d3d8_texture_cube_UnlockRect(), d3d8_vertex_declaration_init(), d3d8_vertex_declaration_init_fvf(), d3d8_vertex_shader_init(), d3d8_vertexbuffer_Lock(), d3d8_vertexshader_create_vertexdeclaration(), d3d8_volume_LockBox(), d3d8_volume_UnlockBox(), d3d9_CheckDepthStencilMatch(), d3d9_CheckDeviceFormat(), d3d9_CheckDeviceFormatConversion(), d3d9_CheckDeviceMultiSampleType(), d3d9_CheckDeviceType(), d3d9_CreateDevice(), d3d9_CreateDeviceEx(), d3d9_device_BeginScene(), d3d9_device_BeginStateBlock(), d3d9_device_Clear(), d3d9_device_ColorFill(), d3d9_device_create_surface(), d3d9_device_CreateAdditionalSwapChain(), d3d9_device_CreateCubeTexture(), d3d9_device_CreateIndexBuffer(), d3d9_device_CreatePixelShader(), d3d9_device_CreateQuery(), d3d9_device_CreateStateBlock(), d3d9_device_CreateTexture(), d3d9_device_CreateVertexBuffer(), d3d9_device_CreateVertexDeclaration(), d3d9_device_CreateVertexShader(), d3d9_device_CreateVolumeTexture(), d3d9_device_DrawIndexedPrimitive(), d3d9_device_DrawIndexedPrimitiveUP(), d3d9_device_DrawPrimitive(), d3d9_device_DrawPrimitiveUP(), d3d9_device_EndScene(), d3d9_device_EndStateBlock(), d3d9_device_GetBackBuffer(), d3d9_device_GetClipPlane(), d3d9_device_GetClipStatus(), d3d9_device_GetDepthStencilSurface(), d3d9_device_GetDeviceCaps(), d3d9_device_GetDisplayMode(), d3d9_device_GetDisplayModeEx(), d3d9_device_GetFrontBufferData(), d3d9_device_GetLight(), d3d9_device_GetLightEnable(), d3d9_device_GetPixelShaderConstantB(), d3d9_device_GetPixelShaderConstantF(), d3d9_device_GetPixelShaderConstantI(), d3d9_device_GetRasterStatus(), d3d9_device_GetRenderTarget(), d3d9_device_GetRenderTargetData(), d3d9_device_GetStreamSource(), d3d9_device_GetStreamSourceFreq(), d3d9_device_GetSwapChain(), d3d9_device_GetVertexShaderConstantB(), d3d9_device_GetVertexShaderConstantF(), d3d9_device_GetVertexShaderConstantI(), d3d9_device_LightEnable(), d3d9_device_prepare_index_buffer(), d3d9_device_prepare_vertex_buffer(), d3d9_device_Present(), d3d9_device_PresentEx(), d3d9_device_ProcessVertices(), d3d9_device_reset(), d3d9_device_SetClipPlane(), d3d9_device_SetClipStatus(), d3d9_device_SetCursorProperties(), d3d9_device_SetDialogBoxMode(), d3d9_device_SetLight(), d3d9_device_SetNPatchMode(), d3d9_device_SetPixelShaderConstantB(), d3d9_device_SetPixelShaderConstantF(), d3d9_device_SetPixelShaderConstantI(), d3d9_device_SetRenderTarget(), d3d9_device_SetStreamSource(), d3d9_device_SetStreamSourceFreq(), d3d9_device_SetTexture(), d3d9_device_SetVertexShaderConstantB(), d3d9_device_SetVertexShaderConstantF(), d3d9_device_SetVertexShaderConstantI(), d3d9_device_StretchRect(), d3d9_device_UpdateSurface(), d3d9_device_UpdateTexture(), d3d9_device_ValidateDevice(), d3d9_EnumAdapterModes(), d3d9_EnumAdapterModesEx(), d3d9_GetAdapterDisplayMode(), d3d9_GetAdapterDisplayModeEx(), d3d9_GetAdapterIdentifier(), d3d9_GetAdapterLUID(), d3d9_GetAdapterMonitor(), d3d9_GetDeviceCaps(), d3d9_indexbuffer_Lock(), d3d9_pixelshader_GetFunction(), d3d9_query_GetData(), d3d9_query_Issue(), d3d9_RegisterSoftwareDevice(), d3d9_resource_get_private_data(), d3d9_resource_set_private_data(), d3d9_surface_acquire_rendertarget_view(), d3d9_surface_GetContainer(), d3d9_surface_GetDC(), d3d9_surface_LockRect(), d3d9_surface_ReleaseDC(), d3d9_surface_UnlockRect(), d3d9_swapchain_create(), d3d9_swapchain_GetBackBuffer(), d3d9_swapchain_GetDisplayMode(), d3d9_swapchain_GetDisplayModeEx(), d3d9_swapchain_GetFrontBufferData(), d3d9_swapchain_GetRasterStatus(), d3d9_swapchain_Present(), d3d9_texture_2d_AddDirtyRect(), d3d9_texture_2d_GetLevelDesc(), d3d9_texture_2d_LockRect(), d3d9_texture_2d_UnlockRect(), d3d9_texture_3d_AddDirtyBox(), d3d9_texture_3d_GetLevelDesc(), d3d9_texture_3d_LockBox(), d3d9_texture_3d_UnlockBox(), d3d9_texture_acquire_shader_resource_view(), d3d9_texture_cube_AddDirtyRect(), d3d9_texture_cube_GetLevelDesc(), d3d9_texture_cube_LockRect(), d3d9_texture_cube_UnlockRect(), d3d9_vertex_declaration_create(), d3d9_vertexbuffer_Lock(), d3d9_vertexshader_GetFunction(), d3d9_volume_LockBox(), d3d9_volume_UnlockBox(), d3d_device1_CreateExecuteBuffer(), d3d_device1_Execute(), d3d_device1_NextViewport(), d3d_device2_EnumTextureFormats(), d3d_device2_GetRenderTarget(), d3d_device2_NextViewport(), d3d_device2_SetRenderTarget(), d3d_device3_GetCaps(), d3d_device3_GetLightState(), d3d_device3_GetRenderTarget(), d3d_device3_SetLightState(), d3d_device3_SetRenderState(), d3d_device3_SetRenderTarget(), d3d_device3_SetTexture(), d3d_device7_ApplyStateBlock_FPUPreserve(), d3d_device7_BeginScene(), d3d_device7_BeginScene_FPUPreserve(), d3d_device7_BeginStateBlock(), d3d_device7_BeginStateBlock_FPUPreserve(), d3d_device7_CaptureStateBlock_FPUPreserve(), d3d_device7_Clear(), d3d_device7_Clear_FPUPreserve(), d3d_device7_CreateStateBlock(), d3d_device7_CreateStateBlock_FPUPreserve(), d3d_device7_DeleteStateBlock_FPUPreserve(), d3d_device7_DrawIndexedPrimitive(), d3d_device7_DrawIndexedPrimitive_FPUPreserve(), d3d_device7_DrawIndexedPrimitiveStrided(), d3d_device7_DrawIndexedPrimitiveStrided_FPUPreserve(), d3d_device7_DrawIndexedPrimitiveVB(), d3d_device7_DrawIndexedPrimitiveVB_FPUPreserve(), d3d_device7_DrawPrimitive(), d3d_device7_DrawPrimitive_FPUPreserve(), d3d_device7_DrawPrimitiveStrided(), d3d_device7_DrawPrimitiveStrided_FPUPreserve(), d3d_device7_DrawPrimitiveVB(), d3d_device7_DrawPrimitiveVB_FPUPreserve(), d3d_device7_EndScene(), d3d_device7_EndScene_FPUPreserve(), d3d_device7_EndStateBlock(), d3d_device7_EndStateBlock_FPUPreserve(), d3d_device7_EnumTextureFormats(), d3d_device7_EnumTextureFormats_FPUPreserve(), d3d_device7_GetCaps_FPUPreserve(), d3d_device7_GetClipPlane(), d3d_device7_GetClipPlane_FPUPreserve(), d3d_device7_GetLight_FPUPreserve(), d3d_device7_GetLightEnable(), d3d_device7_GetLightEnable_FPUPreserve(), d3d_device7_GetMaterial_FPUPreserve(), d3d_device7_GetRenderState(), d3d_device7_GetRenderState_FPUPreserve(), d3d_device7_GetRenderTarget(), d3d_device7_GetTexture_FPUPreserve(), d3d_device7_GetTextureStageState_FPUPreserve(), d3d_device7_GetTransform_FPUPreserve(), d3d_device7_GetViewport_FPUPreserve(), d3d_device7_LightEnable(), d3d_device7_LightEnable_FPUPreserve(), d3d_device7_Load_FPUPreserve(), d3d_device7_MultiplyTransform_FPUPreserve(), d3d_device7_PreLoad_FPUPreserve(), d3d_device7_SetClipPlane(), d3d_device7_SetClipPlane_FPUPreserve(), d3d_device7_SetLight(), d3d_device7_SetLight_FPUPreserve(), d3d_device7_SetMaterial_FPUPreserve(), d3d_device7_SetRenderState(), d3d_device7_SetRenderState_FPUPreserve(), d3d_device7_SetRenderTarget(), d3d_device7_SetRenderTarget_FPUPreserve(), d3d_device7_SetTexture(), d3d_device7_SetTexture_FPUPreserve(), d3d_device7_SetTextureStageState_FPUPreserve(), d3d_device7_SetTransform_FPUPreserve(), d3d_device7_SetViewport_FPUPreserve(), d3d_device7_ValidateDevice(), d3d_device7_ValidateDevice_FPUPreserve(), d3d_device_create(), d3d_device_init(), d3d_device_prepare_index_buffer(), d3d_device_prepare_vertex_buffer(), d3d_device_set_render_target(), d3d_draw_quad1(), d3d_execute_buffer_SetExecuteData(), d3d_texture2_Load(), d3d_vertex_buffer7_Lock(), d3d_vertex_buffer7_ProcessVertices(), d3d_vertex_buffer_create(), d3d_viewport_Clear(), d3d_viewport_Clear2(), d3d_viewport_NextLight(), D3DAssemble(), D3DCompile2(), d3dcompiler_get_blob_part(), d3dcompiler_parse_rdef(), d3dcompiler_parse_type(), d3dcompiler_parse_variables(), d3dcompiler_shader_reflection_init(), d3dcompiler_strip_shader(), D3DCreateBlob(), D3DPreprocess(), d3dpreprocess_test(), D3DReadFileToBlob(), D3DReflect(), d3drm1_CreateAnimation(), d3drm1_CreateDeviceFromClipper(), d3drm1_CreateDeviceFromD3D(), d3drm1_CreateDeviceFromSurface(), d3drm1_CreateFace(), d3drm1_CreateFrame(), d3drm1_CreateTexture(), d3drm1_CreateTextureFromSurface(), d3drm1_CreateViewport(), d3drm1_CreateWrap(), d3drm1_Load(), d3drm1_LoadTexture(), d3drm1_LoadTextureFromResource(), d3drm2_CreateDeviceFromClipper(), d3drm2_CreateDeviceFromD3D(), d3drm2_CreateDeviceFromSurface(), d3drm2_CreateFrame(), d3drm2_CreateMeshBuilder(), d3drm2_CreateTexture(), d3drm2_CreateTextureFromSurface(), d3drm2_CreateViewport(), d3drm2_Load(), d3drm2_LoadTexture(), d3drm2_LoadTextureFromResource(), d3drm3_CreateAnimation(), d3drm3_CreateDeviceFromClipper(), d3drm3_CreateDeviceFromD3D(), d3drm3_CreateDeviceFromSurface(), d3drm3_CreateFace(), d3drm3_CreateFrame(), d3drm3_CreateLight(), d3drm3_CreateLightRGB(), d3drm3_CreateMaterial(), d3drm3_CreateMesh(), d3drm3_CreateMeshBuilder(), d3drm3_CreateObject(), d3drm3_CreateTexture(), d3drm3_CreateTextureFromSurface(), d3drm3_CreateViewport(), d3drm3_CreateWrap(), d3drm3_Load(), d3drm3_LoadTexture(), d3drm3_LoadTextureFromResource(), d3drm_animation1_SetFrame(), d3drm_animation_create(), d3drm_create_animation_object(), d3drm_create_device_object(), d3drm_create_face_object(), d3drm_create_frame_object(), d3drm_create_light_object(), d3drm_create_material_object(), d3drm_create_mesh_builder_object(), d3drm_create_mesh_object(), d3drm_create_texture_object(), d3drm_create_viewport_object(), d3drm_create_wrap_object(), d3drm_device3_InitFromD3D2(), d3drm_device_create_surfaces_from_clipper(), d3drm_device_init(), d3drm_device_set_ddraw_device_d3d(), d3drm_frame2_AddChild(), d3drm_frame2_DeleteChild(), d3drm_frame2_GetScene(), d3drm_frame_create(), d3drm_mesh_builder2_CreateFace(), d3drm_mesh_builder2_SetTexture(), d3drm_mesh_builder3_CreateFace(), d3drm_mesh_builder3_CreateMesh(), d3drm_mesh_builder3_Load(), d3drm_texture1_InitFromFile(), d3drm_texture3_InitFromFile(), d3drm_texture_load(), d3drm_update_background_material(), d3drm_viewport1_GetCamera(), d3drm_viewport1_Init(), d3drm_viewport2_Clear(), d3drm_viewport2_Init(), d3dx9_apply_pass_states(), d3dx9_apply_state(), d3dx9_create_object(), d3dx9_effect_init(), d3dx9_get_param_value_ptr(), d3dx9_line_End(), d3dx9_mesh_CloneMesh(), d3dx9_mesh_CloneMeshFVF(), d3dx9_mesh_ConvertAdjacencyToPointReps(), d3dx9_mesh_ConvertPointRepsToAdjacency(), d3dx9_mesh_DrawSubset(), d3dx9_mesh_GenerateAdjacency(), d3dx9_mesh_Optimize(), d3dx9_mesh_OptimizeInplace(), d3dx9_mesh_UpdateSemantics(), d3dx9_skin_info_Clone(), d3dx9_skin_info_SetDeclaration(), d3dx9_skin_info_SetFVF(), d3dx9_sprite_Begin(), d3dx_effect_Begin(), d3dx_effect_BeginPass(), d3dx_effect_End(), d3dx_effect_GetPassDesc(), d3dx_effect_ValidateTechnique(), d3dx_evaluate_parameter(), d3dx_param_eval_set_shader_constants(), d3dx_parse_effect(), d3dx_parse_effect_annotation(), d3dx_parse_effect_parameter(), d3dx_parse_effect_pass(), d3dx_parse_effect_technique(), d3dx_parse_effect_typedef(), d3dx_parse_init_value(), d3dx_parse_resource(), d3dx_parse_sampler(), d3dx_parse_state(), d3dx_parse_value(), d3dx_set_shader_constants(), D3DXAssembleShader(), D3DXAssembleShaderFromFileW(), D3DXCheckCubeTextureRequirements(), D3DXCheckVolumeTextureRequirements(), D3DXCompileShader(), D3DXCompileShaderFromFileW(), D3DXComputeBoundingBoxTest(), D3DXComputeBoundingSphereTest(), D3DXComputeTangentFrameEx(), D3DXCreateAnimationControllerTest(), D3DXCreateBox(), D3DXCreateBoxTest(), D3DXCreateBuffer(), D3DXCreateCubeTexture(), D3DXCreateCubeTextureFromFileA(), D3DXCreateCubeTextureFromFileExA(), D3DXCreateCubeTextureFromFileExW(), D3DXCreateCubeTextureFromFileInMemoryEx(), D3DXCreateCubeTextureFromFileW(), D3DXCreateCylinder(), D3DXCreateCylinderTest(), D3DXCreateEffectCompiler(), D3DXCreateEffectEx(), D3DXCreateFontIndirectW(), D3DXCreateKeyframedAnimationSetTest(), D3DXCreateMesh(), D3DXCreateMeshFVF(), D3DXCreateMeshFVFTest(), D3DXCreateMeshTest(), D3DXCreatePolygon(), D3DXCreatePolygonTest(), D3DXCreateRenderToEnvMap(), D3DXCreateRenderToSurface(), D3DXCreateSkinInfo(), D3DXCreateSkinInfoFVF(), D3DXCreateSphere(), D3DXCreateSphereTest(), D3DXCreateTextA(), D3DXCreateTextTest(), D3DXCreateTexture(), D3DXCreateTextureFromFileExA(), D3DXCreateTextureFromFileExW(), D3DXCreateTextureFromFileInMemoryEx(), D3DXCreateTextW(), D3DXCreateTorus(), D3DXCreateTorusTest(), D3DXCreateVolumeTexture(), D3DXCreateVolumeTextureFromFileA(), D3DXCreateVolumeTextureFromFileExA(), D3DXCreateVolumeTextureFromFileExW(), D3DXCreateVolumeTextureFromFileInMemoryEx(), D3DXCreateVolumeTextureFromFileW(), D3DXDisassembleShader(), D3DXFillTexture(), D3DXFilterTexture(), D3DXFrameDestroy(), D3DXGenerateAdjacencyTest(), D3DXGetImageInfoFromFileA(), D3DXGetImageInfoFromFileInMemory(), D3DXGetImageInfoFromFileW(), D3DXGetShaderConstantTableEx(), D3DXLoadMeshFromXA(), D3DXLoadMeshFromXInMemory(), D3DXLoadMeshFromXResource(), D3DXLoadMeshFromXW(), D3DXLoadMeshHierarchyFromXA(), D3DXLoadMeshHierarchyFromXInMemory(), D3DXLoadMeshHierarchyFromXW(), D3DXLoadMeshTest(), D3DXLoadSkinMeshFromXof(), D3DXLoadSurfaceFromFileA(), D3DXLoadSurfaceFromFileInMemory(), D3DXLoadSurfaceFromFileW(), D3DXLoadSurfaceFromMemory(), D3DXLoadSurfaceFromSurface(), D3DXLoadVolumeFromFileA(), D3DXLoadVolumeFromFileInMemory(), D3DXLoadVolumeFromFileW(), D3DXLoadVolumeFromMemory(), D3DXLoadVolumeFromVolume(), D3DXOptimizeFaces(), d3dxpreprocess_test(), D3DXPreprocessShaderFromFileW(), D3DXRenderToEnvMap_BeginCube(), D3DXRenderToEnvMap_Face(), D3DXRenderToSurface_BeginScene(), D3DXRenderToSurface_EndScene(), D3DXSaveSurfaceToFileA(), D3DXSaveSurfaceToFileInMemory(), D3DXSaveSurfaceToFileW(), D3DXSaveTextureToFileA(), D3DXSaveTextureToFileInMemory(), D3DXSaveTextureToFileW(), D3DXWeldVertices(), anonymous_namespace{mstscax.cpp}::CoClass::DAdvise(), DataAdviseHolder_Advise(), DataAdviseHolder_EnumAdvise(), DataAdviseHolder_OnConnect(), DataAdviseHolder_SendOnDataChange(), database_invoke(), Database_OpenView(), Database_SummaryInformation(), DataCache_Cache(), DataCache_CreateEntry(), DataCache_DiscardCache(), DataCache_EnumCache(), DataCache_InitNew(), DataCache_IOleCache2_SetData(), DataCache_Load(), DataCache_Save(), DataCache_UpdateCache(), DataCacheEntry_GetData(), DataCacheEntry_LoadData(), DataCacheEntry_Save(), DataCacheEntry_SetData(), DataObject_EnumFormatEtc(), DataObject_GetHIDACount(), db_initialize(), DCMA_InsertMenuItems(), DCMA_InvokeCommand(), DDErrorString(), ddraw1_CreatePalette(), ddraw1_CreateSurface(), ddraw1_DuplicateSurface(), ddraw1_GetDisplayMode(), ddraw1_GetGDISurface(), ddraw1_SetCooperativeLevel(), ddraw2_CreatePalette(), ddraw2_CreateSurface(), ddraw2_DuplicateSurface(), ddraw2_GetDisplayMode(), ddraw2_GetGDISurface(), ddraw4_CreatePalette(), ddraw4_CreateSurface(), ddraw4_DuplicateSurface(), ddraw4_GetDeviceIdentifier(), ddraw4_GetGDISurface(), ddraw4_GetSurfaceFromDC(), ddraw7_CreatePalette(), ddraw7_CreateSurface(), ddraw7_EnumSurfaces(), ddraw7_FlipToGDISurface(), ddraw7_GetAvailableVidMem(), ddraw7_GetCaps(), ddraw7_GetDeviceIdentifier(), ddraw7_GetDisplayMode(), ddraw7_GetFourCCCodes(), ddraw7_GetMonitorFrequency(), ddraw7_GetScanLine(), ddraw7_GetVerticalBlankStatus(), ddraw7_RestoreDisplayMode(), ddraw7_SetDisplayMode(), ddraw_attach_d3d_device(), DDRAW_Create(), ddraw_create_swapchain(), ddraw_enumerate_secondary_devices(), ddraw_find_decl(), ddraw_get_d3dcaps(), ddraw_init(), ddraw_palette_GetEntries(), ddraw_palette_init(), ddraw_palette_SetEntries(), ddraw_set_cooperative_level(), ddraw_surface1_AddAttachedSurface(), ddraw_surface1_GetAttachedSurface(), ddraw_surface1_GetCaps(), ddraw_surface1_Lock(), ddraw_surface2_AddAttachedSurface(), ddraw_surface2_GetAttachedSurface(), ddraw_surface2_GetCaps(), ddraw_surface2_Lock(), ddraw_surface3_AddAttachedSurface(), ddraw_surface3_GetAttachedSurface(), ddraw_surface3_GetCaps(), ddraw_surface3_Lock(), ddraw_surface4_AddAttachedSurface(), ddraw_surface4_GetAttachedSurface(), ddraw_surface7_AddAttachedSurface(), ddraw_surface7_Blt(), ddraw_surface7_BltFast(), ddraw_surface7_Flip(), ddraw_surface7_GetDC(), ddraw_surface7_GetOverlayPosition(), ddraw_surface7_GetPalette(), ddraw_surface7_GetPriority(), ddraw_surface7_GetPrivateData(), ddraw_surface7_QueryInterface(), ddraw_surface7_ReleaseDC(), ddraw_surface7_Restore(), ddraw_surface7_SetLOD(), ddraw_surface7_SetOverlayPosition(), ddraw_surface7_SetPriority(), ddraw_surface7_SetPrivateData(), ddraw_surface7_SetSurfaceDesc(), ddraw_surface7_Unlock(), ddraw_surface7_UpdateOverlay(), ddraw_surface_blt_clipped(), ddraw_surface_create(), ddraw_surface_get_rendertarget_view(), ddraw_surface_set_color_key(), ddraw_surface_update_frontbuffer(), ddrawmediastream_create(), ddrawstreamsample_create(), DdsDecoder_Dds_GetFrame(), DdsDecoder_Dds_GetParameters(), DdsDecoder_Initialize(), DdsDecoder_Wine_Initialize(), DdsEncoder_Dds_CreateNewFrame(), DdsEncoder_Dds_GetParameters(), DdsEncoder_Dds_SetParameters(), DdsEncoder_GetEncoderInfo(), DdsEncoder_Initialize(), DdsEncoder_SetPalette(), DdsFrameDecode_CopyPixels(), DdsFrameEncode_Initialize(), DdsFrameEncode_SetPixelFormat(), DdsFrameEncode_SetResolution(), DdsFrameEncode_SetSize(), deactivate_given_ts(), debugcontrol_GetExecutingProcessorType(), debugcontrol_IsPointer64Bit(), DebugCreate(), debugdataspaces_ReadVirtual(), debugsymbols_GetModuleNameString(), debugsymbols_GetModuleVersionInformation(), debugsymbols_GetNumberModules(), dec_ext_ref(), dec_int_ref(), decode_frame_wic(), decode_image_gif(), decode_image_png(), Decompress(), DecompressQuery(), DefaultHandler_Close(), DefaultHandler_Construct(), DefaultHandler_DoVerb(), DefaultHandler_EnumVerbs(), DefaultHandler_GetCanonicalFormatEtc(), DefaultHandler_GetClipboardData(), DefaultHandler_GetMoniker(), DefaultHandler_GetUserClassID(), DefaultHandler_GetUserType(), DefaultHandler_InitFromData(), DefaultHandler_IPersistStorage_GetClassID(), DefaultHandler_IPersistStorage_HandsOffStorage(), DefaultHandler_IPersistStorage_InitNew(), DefaultHandler_IPersistStorage_IsDirty(), DefaultHandler_IPersistStorage_Load(), DefaultHandler_IPersistStorage_Save(), DefaultHandler_IPersistStorage_SaveCompleted(), DefaultHandler_IsUpToDate(), DefaultHandler_NDIUnknown_QueryInterface(), DefaultHandler_Run(), DefaultHandler_SetClientSite(), DefaultHandler_SetColorScheme(), DefaultHandler_SetExtent(), DefaultHandler_SetMoniker(), DefaultHandler_Stop(), DefaultHandler_Update(), del_dirs_callback(), CMruBase::Delete(), delete_folder(), RecycleBin5::DeleteFile(), RecycleBinGeneric::DeleteFile(), DeleteFileInRecycleBin(), DeleteFileToRecycleBinW(), deleteStorageContents(), deleteStreamContents(), delnode_test(), DelNodeRunDLL32A(), dest_mgr_empty_output_buffer(), dest_mgr_term_destination(), CicBridge::DestroyInputContext(), OleInPlaceClient::detach(), determine_patch_sequence(), DEVENUM_ICreateDevEnum_CreateClassEnumerator(), DEVENUM_IEnumMoniker_Next(), DEVENUM_ReadPinTypes(), device_get_fvf_declaration(), device_init(), device_load_logo(), device_parent_create_swapchain(), device_parent_create_swapchain_texture(), device_state_capture(), device_state_init(), device_tests(), DialogProc(), dictionary_GetIDsOfNames(), dictionary_Invoke(), dictionary_Items(), dictionary_Keys(), dictionary_put_Key(), DirectDrawCreate(), DirectDrawCreateClipper(), DirectDrawCreateEx(), DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetDirectDraw(), DirectInput8Create(), DirectInputCreateEx(), DirectPlayCreate(), DirectSoundCaptureCreate(), DirectSoundCaptureCreate8(), DirectSoundCreate(), DirectSoundCreate8(), DirectSoundDevice_AddBuffer(), DirectSoundDevice_Initialize(), DirectSoundDevice_Release(), DirectSoundDevice_RemoveBuffer(), DirectXFileCreate(), CMenuFocusManager::DisableMouseTrack(), DisableNetworkAdapter(), anonymous_namespace{mstscax.cpp}::CoClass::Disconnect(), CNetConnection::Disconnect(), DisconnectDriveExit(), dispatch_create_proxy(), dispatch_create_stub(), dispatch_rpc(), dispatch_typelib_ps_CreateProxy(), dispatch_typelib_ps_CreateStub(), dispevent_Invoke(), DispGetParam(), DisplayAttributeMgr_Constructor(), DisplayClassInstaller(), DisplayNameOfW(), DisplayWizard(), DllCanUnloadNow(), anonymous_namespace{mstscax.cpp}::DllCanUnloadNow(), anonymous_namespace{mstscax.cpp}::DllGetClassObject(), DllGetClassObject(), DllRegisterServer(), DllUnregisterServer(), dmobj_parsedescriptor(), DMOUnregister(), DMUSIC_CreateDirectMusicCollectionImpl(), DMUSIC_CreateDirectMusicInstrumentImpl(), DMUSIC_CreateReferenceClockImpl(), Entry::do_context_menu(), do_enum(), do_query(), CCopyMoveToMenu::DoAction(), doChild(), DocHostUIHandler_TranslateAccelerator(), DoCloseLangbar(), DesktopShellView::DoContextMenu(), CCopyAsPathMenu::DoCopyAsPath(), CDefaultContextMenu::DoCopyOrCut(), CDefaultContextMenu::DoCopyToMoveToFolder(), CDefaultContextMenu::DoCreateLink(), CDefaultContextMenu::DoCreateNewFolder(), DoCreateShortcut(), CDefaultContextMenu::DoDelete(), DesktopShellView::DoDesktopContextMenu(), DoDllRegisterServer(), DoDllUnregisterServer(), CSendToMenu::DoDrop(), DoEntry(), DoFormatDriveThread(), DoGetFileTitle(), DoInfInstall(), DoInfInstallW(), DoInitAutoCompleteWithCWD(), DoInstallFontFile(), DoLoadImageFile(), DoLoadPicture(), DoNullFolderTest(), CDefaultContextMenu::DoPaste(), CDefaultContextMenu::DoProperties(), CDefaultContextMenu::DoRename(), CSendToMenu::DoSendToItem(), DoShellContextMenu(), DoShellContextMenuOnFile(), DoStartStartupItems(), DoTestCaseA(), DoTestCaseB(), DoTestEntry(), DoTraceLevelMessage(), anonymous_namespace{mstscax.cpp}::CoClass::DoVerb(), download_url(), downloadcb_OnProgress(), DP_BuildSPCompoundAddr(), DP_EnumSessionsSendAsyncRequestThread(), DP_IF_CreatePlayer(), DP_InitializeDPLSP(), DP_InitializeDPSP(), DP_MSG_ExpectReply(), DP_MSG_ForwardPlayerCreation(), DP_MSG_SendRequestPlayerId(), DP_SecureOpen(), DPA_SaveStream(), DPL_ConnectEx(), dplay_cancelmsg(), dplay_create(), dplaysp_create(), DPLAYX_HresultToString(), dplobby_create(), dplobbysp_create(), dpResult2str(), drag_end(), drag_enter(), CDefView::drag_notify_subitem(), CDefView::DragEnter(), CShellLink::DragEnter(), CShellLink::DragLeave(), CShellLink::DragOver(), draw_ole(), draw_quad2(), draw_quad_with_shader9(), CTrayWindow::DrawSizerWithTheme(), DrawThemeBackgroundEx(), DrawThemeTextEx(), drive_GetIDsOfNames(), drive_Invoke(), drivecoll_enumvariant_Next(), drivecoll_GetIDsOfNames(), drivecoll_Invoke(), DrivesContextMenuCallback(), CSendToZip::Drop(), CMyDocsDropHandler::Drop(), CDeskLinkDropHandler::Drop(), CShellLink::Drop(), CFSDropTarget::Drop(), DSOUND_CaptureCreate(), DSOUND_CaptureCreate8(), DSOUND_Create(), DSOUND_Create8(), DSoundAdviseThread(), DSoundRender_CompleteConnect(), DSoundRender_create(), DSoundRender_DoRenderSample(), DSoundRender_EndOfStream(), DSoundRender_Pause(), DSoundRender_PrepareReceive(), DSoundRender_QueryInterface(), DSoundRender_SendSampleData(), DSPROPERTY_Description1(), DSPROPERTY_DescriptionA(), DSPROPERTY_EnumerateW(), DSPROPERTY_WaveDeviceMappingA(), DSPROPERTY_WaveDeviceMappingW(), dummy_thread_proc(), dump_shell_namespace(), DumpCommand(), anonymous_namespace{mstscax.cpp}::CoClass::DUnadvise(), duo_marshal_thread_proc(), dup_metafilepict(), dxbc_parse(), dxbc_write_blob(), DynamicSHGetPathFromIDListW(), DynamicSHGetSpecialFolderPathW(), ebrowser_browse_to_desktop(), EDIT_UpdateUniscribeData_linedef(), editor_copy(), editor_copy_or_cut(), editor_insert_oleobj(), editor_set_default_para_fmt(), EditSession_DoEditSession(), EditStreamClone(), EditStreamCopy(), EditStreamCut(), EditStreamPaste(), EditStreamSetInfoW(), EditTypeDlg_ReadClass(), EditTypeDlg_WriteClass(), RecycleBinGeneric::EmptyRecycleBin(), RecycleBin5::EmptyRecycleBin(), EmptyRecycleBinW(), EnableCommandIfVerbExistsProc(), anonymous_namespace{mstscax.cpp}::CoClass::EnableModeless(), encode_image_wic(), CTipbarCoInitialize::EnsureCoInit(), CMyDocsFolder::EnsureFolder(), ATL::IDispatchImpl< T, piid, plibid, wMajor, wMinor >::EnsureTILoaded(), enter_apartment(), enum_class_object_Next(), enum_devices(), enum_find_filter(), enum_gac_assemblies(), enum_key(), enum_proc(), enum_stream_names(), enum_values(), anonymous_namespace{mstscax.cpp}::CoClass::EnumAdvise(), EnumAxes(), CInternetToolbar::EnumBands(), CNetConnectionPropertyUi::EnumComponents(), anonymous_namespace{mstscax.cpp}::CConnectionPointContainer::EnumConnectionPoints(), anonymous_namespace{mstscax.cpp}::CoClass::EnumConnectionPoints(), anonymous_namespace{mstscax.cpp}::CConnectionPoint::EnumConnections(), EnumConnections_cb(), EnumConnections_cb2(), anonymous_namespace{mstscax.cpp}::CoClass::EnumDAdvise(), enumerate_gac(), CDefaultContextMenu::EnumerateDynamicContextHandlerForKey(), EnumerateNetworkComponent(), CEnumRegKey::EnumerateNext(), EnumerateRecycleBinW(), enumeration_callback(), EnumFillCallback(), anonymous_namespace{mstscax.cpp}::CoClass::EnumFormatEtc(), EnumFORMATETC_Next(), EnumFormatImpl_Clone(), EnumJoysticks(), CInputProcessorProfiles::EnumLanguageProfiles(), CInputPin::EnumMediaTypes(), COutputPin::EnumMediaTypes(), EnumMediaTypes_Construct(), EnumMonikerImpl_Next(), RecycleBin5::EnumObjects(), CDesktopFolder::EnumObjects(), CMyDocsFolder::EnumObjects(), CMergedFolder::EnumObjects(), EnumOLEVERB_Next(), CNetworkProvider::EnumPins(), CMyDocsFolder::EnumSearches(), EnumSessions_cb2(), EnumSessions_cb_EnumGroups(), EnumSessions_cb_EnumPlayers(), EnumSessions_cb_join(), EnumSessions_cb_join_secure(), EnumSTATDATA_Next(), EnumThemeColors(), EnumThemes(), EnumThemeSizes(), enumvar_Next(), anonymous_namespace{mstscax.cpp}::CoClass::EnumVerbs(), ErrorFromHResult(), eval_propval(), eval_unary(), events_OnFileOk(), events_OnFolderChanging(), events_OnOverwrite(), CQuickLaunchBand::Exec(), exec_assoc_view(), exec_query(), exec_select_view(), exec_tests(), CAddressEditBox::Execute(), execute_test(), ExecuteCabA(), ExecuteCabW(), CShellBrowser::ExecWB(), CACListISF::Expand(), expect(), ExploreGraph(), IconCache::extract(), CExtractIcon::Extract(), CShellLink::Extract(), ExtractAndInstallThread(), ExtractArchiveForExecution(), ExtractCabinet(), ExtractFilesCallback(), ExtractFilesThread(), CCabFolder::ExtractFilesUI(), CZipExtract::ExtractSingle(), factory_CreateInstance(), failure_test(), FakeSHLoadRegUIStringW(), file_GetIDsOfNames(), file_Invoke(), FileAsyncReader_Construct(), FileAsyncReader_Request(), FileAsyncReader_RequestAllocator(), FileAsyncReader_SyncRead(), FileAsyncReader_SyncReadAligned(), FileAsyncReader_WaitForNext(), FileAsyncReaderPin_AttemptConnection(), filecoll_enumvariant_Next(), filecoll_GetIDsOfNames(), filecoll_Invoke(), filedata_get_name(), FileDialog_constructor(), filedlg_collect_places_pidls(), FileLockBytesImpl_SetSize(), FileMoniker_CreateFromDisplayName(), FileMoniker_CreateInstance(), FileMonikerImpl_QueryInterface(), FileOpCallback(), FileSaveRestoreA(), FileSaveRestoreOnINFA(), FileSource_Load(), filesys_GetDrive(), filesys_GetIDsOfNames(), filesys_Invoke(), fill_datetime_information(), fill_display_information_d3d(), fill_display_information_fallback(), fill_file_description(), fill_filename_from_selection(), fill_filter_container(), fill_filter_data_information(), fill_language_information(), fill_os_string_information(), fill_processor_information(), fill_videocontroller(), ShellDirectory::fill_w32fdata_shell(), FillBuffer(), FillDefault(), CDefView::FillFileMenu(), CDefView::FillList(), CAddressEditBox::FillOneLevel(), CMenuStaticToolbar::FillToolbar(), CMenuSFToolbar::FillToolbar(), FilterConnectCommunicationPort(), FilterGraph2_AddFilter(), FilterGraph2_AddSourceFilter(), FilterGraph2_AddSourceFilterForMoniker(), FilterGraph2_Connect(), FilterGraph2_ConnectDirect(), FilterGraph2_Reconnect(), FilterGraph2_RemoveFilter(), FilterGraph2_Render(), FilterGraph2_RenderFile(), FilterGraph2_RenderRecurse(), FilterGraph2_SetDefaultSyncSource(), FilterGraph_create(), FilterMapper3_CreateCategory(), FilterMapper3_EnumMatchingFilters(), FilterMapper3_RegisterFilter(), FilterMapper3_UnregisterFilter(), FilterMapper_create(), FilterMapper_EnumMatchingFilters(), FilterMapper_RegisterFilter(), FilterMapper_RegisterPin(), FilterMapper_RegisterPinType(), FilterMapper_UnregisterFilter(), FilterMapper_UnregisterPin(), CQuickLaunchBand::FinalConstruct(), CDesktopFolder::FinalConstruct(), CDrivesFolder::FinalConstruct(), find_body(), find_reader_from_block(), find_unconnected_pin(), FindChunkAndKeepExtras(), CCategoryMgr::FindClosestCategory(), anonymous_namespace{mstscax.cpp}::CConnectionPointContainer::FindConnectionPoint(), anonymous_namespace{mstscax.cpp}::CoClass::FindConnectionPoint(), FindExeCplClass(), FindExpectedFile(), FindHTMLHelpSetting(), CEnumMergedFolder::FindPidlInList(), SEALED_::FireChannelReceivedData(), FixupVTable(), FlipRotator_CopyPixels(), FlipRotator_Initialize(), flush_queue(), FM2_ReadFilterData(), FM2_WriteClsid(), FM2_WriteFilterData(), fnCaptureGraphBuilder2_FindPin(), fnCaptureGraphBuilder2_RenderStream(), FNFDINOTIFY(), fnIMultiLanguage3_ConvertStringInIStream(), fnIMultiLanguage3_CreateConvertCharset(), fnIMultiLanguage3_GetLcidFromRfc1766(), fnTextSrv_OnTxInPlaceActivate(), fnTextSrv_OnTxPropertyBitsChange(), fnTextSrv_TxDraw(), fnTextSrv_TxGetNaturalSize(), fnTextSrv_TxSendMessage(), folder_GetIDsOfNames(), folder_Invoke(), foldercoll_enumvariant_Next(), foldercoll_GetIDsOfNames(), foldercoll_Invoke(), FolderOptionsViewDlg(), foreach_component(), CRegistryFolder::FormatContentsForDisplay(), FormatConverter_CopyPixels(), FoundCapabilities(), FoundDuration(), anonymous_namespace{mstscax.cpp}::CoClass::FreezeEvents(), FSFolderItemPropDialogInitCallback(), FTMarshalCF_CreateInstance(), fw_app_GetIDsOfNames(), fw_app_Invoke(), fw_apps_GetIDsOfNames(), fw_apps_Invoke(), fw_manager_GetIDsOfNames(), fw_manager_Invoke(), fw_policy_GetIDsOfNames(), fw_policy_Invoke(), fw_port_GetIDsOfNames(), fw_port_Invoke(), fw_ports_GetIDsOfNames(), fw_ports_Invoke(), fw_ports_Item(), fw_profile_GetIDsOfNames(), fw_profile_Invoke(), fwpolicy2_GetIDsOfNames(), fwpolicy2_Invoke(), FxIFRStart(), g2s(), GB_ThemedPaint(), GdipGetAllPropertyItems(), GdipGetPropertyIdList(), GdipGetPropertyItem(), GdipGetPropertyItemSize(), GdipGetPropertySize(), GdipLoadImageFromStream(), CDrvDefExt::GeneralPageProc(), generate_effects(), generate_ipid(), generate_moniker(), generate_uri(), geometry_shader_init(), CInputPin::Get(), COutputPin::Get(), CKsProxy::Get(), anonymous_namespace{mstscax.cpp}::CoClass::get_AdvancedSettings(), anonymous_namespace{mstscax.cpp}::CoClass::get_AdvancedSettings2(), anonymous_namespace{mstscax.cpp}::CoClass::get_AdvancedSettings3(), anonymous_namespace{mstscax.cpp}::CoClass::get_AdvancedSettings4(), anonymous_namespace{mstscax.cpp}::CoClass::get_AdvancedSettings5(), get_antecedent(), get_antecedent_table(), get_attribute_value(), anonymous_namespace{mstscax.cpp}::CoClass::get_BinaryPassword(), anonymous_namespace{mstscax.cpp}::CoClass::get_BinarySalt(), get_body(), get_bool_property(), get_border_background_size(), anonymous_namespace{mstscax.cpp}::CoClass::get_CipherStrength(), get_class_object(), get_class_object_proxy_thread(), get_class_object_thread(), get_class_support_data(), get_clr_version(), anonymous_namespace{mstscax.cpp}::CoClass::get_ColorDepth(), get_component_info(), get_connected(), anonymous_namespace{mstscax.cpp}::CoClass::get_Connected(), get_connected_filter_name(), anonymous_namespace{mstscax.cpp}::CoClass::get_ConnectedStatusText(), anonymous_namespace{mstscax.cpp}::CoClass::get_ConnectingText(), get_constants_desc(), get_corversion(), CFolderItems::get_Count(), get_current_dataobject(), get_data_from_bitmap(), get_data_from_enhmetafile(), get_data_from_global(), get_data_from_metafilepict(), get_data_from_storage(), get_data_from_stream(), anonymous_namespace{mstscax.cpp}::CoClass::get_Debugger(), get_decoder_info(), anonymous_namespace{mstscax.cpp}::CoClass::get_DesktopHeight(), anonymous_namespace{mstscax.cpp}::CoClass::get_DesktopWidth(), anonymous_namespace{mstscax.cpp}::CoClass::get_DisconnectedText(), get_diskdrivetodiskpartition_pairs(), anonymous_namespace{mstscax.cpp}::CoClass::get_Domain(), get_expected_ret(), anonymous_namespace{mstscax.cpp}::CoClass::get_ExtendedDisconnectReason(), get_facbuf_for_iid(), get_fixed_drive(), anonymous_namespace{mstscax.cpp}::CoClass::get_FullScreen(), get_gif_frame_property(), get_gif_palette(), get_global_interface_proc(), get_GSUB_Indic2(), anonymous_namespace{mstscax.cpp}::CoClass::get_HorizontalScrollBarVisible(), get_hwnd_from_ifiledialog(), get_iface_info(), get_image_part_size(), get_keyitem_pair(), get_lineA(), get_logicaldisktopartition_pairs(), get_marshaler(), get_method(), get_moniker_comparison_data(), get_moniker_for_progid_display_name(), CFolderItem::get_Name(), ShellFolder::get_name(), get_next_component(), get_next_reader(), get_object(), get_palette(), get_param_info(), get_param_pointer_info(), CShellItem::get_parent_shellfolder(), CFolderItem::get_Path(), get_persist_stream(), get_pixelformat_bpp(), get_pixelformat_info(), anonymous_namespace{mstscax.cpp}::CoClass::get_PortablePassword(), anonymous_namespace{mstscax.cpp}::CoClass::get_PortableSalt(), get_priv_data(), get_properties(), get_property(), get_propval(), get_qualifier_value(), get_reflection_type(), get_runtime_info(), CBDASignalStatistics::get_SampleTime(), get_sd(), anonymous_namespace{mstscax.cpp}::CoClass::get_SecuredSettings(), anonymous_namespace{mstscax.cpp}::CoClass::get_SecuredSettings2(), anonymous_namespace{mstscax.cpp}::CoClass::get_SecuredSettingsEnabled(), anonymous_namespace{mstscax.cpp}::CoClass::get_Server(), CBDASignalStatistics::get_SignalLocked(), CBDASignalStatistics::get_SignalPresent(), CBDASignalStatistics::get_SignalQuality(), CBDASignalStatistics::get_SignalStrength(), anonymous_namespace{mstscax.cpp}::CoClass::get_StartConnected(), get_static_entry(), get_stgmed_for_bitmap(), get_stgmed_for_global(), get_stgmed_for_storage(), get_stgmed_for_stream(), get_storage(), get_stringvalue(), get_sub_mimaplevel(), get_surface_color(), get_text_rangeA(), get_textfont_prop(), get_textfont_propf(), get_textfont_propl(), get_texture_memory(), CFolder::get_Title(), get_token(), get_type_info(), get_typeinfo(), get_typeinfo_for_iid(), BtrfsContextMenu::get_uac_icon(), get_ulong_by_index(), get_union_type(), get_unmarshaler_from_stream(), get_url(), anonymous_namespace{mstscax.cpp}::CoClass::get_UserName(), anonymous_namespace{mstscax.cpp}::CoClass::get_Version(), anonymous_namespace{mstscax.cpp}::CoClass::get_VerticalScrollBarVisible(), CAddressEditBox::GetAbsolutePidl(), GetAcceptLanguagesA(), CSearchBar::GetAddressEditBoxLocations(), CInputPin::GetAllocatorRequirements(), CShellItem::GetAttributes(), CFindFolder::GetAttributesOf(), CNetworkConnections::GetAttributesOf(), CControlPanelFolder::GetAttributesOf(), CDesktopFolder::GetAttributesOf(), CFSFolder::GetAttributesOf(), CMyDocsFolder::GetAttributesOf(), CNetFolder::GetAttributesOf(), CPrinterFolder::GetAttributesOf(), CRecycleBin::GetAttributesOf(), CCabFolder::GetAttributesOf(), CCommonFolder< TSelf, TItemId, TExtractIcon >::GetAttributesOf(), CMergedFolder::GetAttributesOf(), COutputPin::GetAvailable(), CKsProxy::GetAvailable(), CMenuBand::GetBandInfo(), CQuickLaunchBand::GetBandInfo(), CBaseBarSite::GetBandObject(), GetCachePath(), anonymous_namespace{mstscax.cpp}::CoClass::GetCanonicalFormatEtc(), COutputPin::GetCapabilities(), CKsProxy::GetCapabilities(), CRegTreeOptions::GetCheckState(), anonymous_namespace{mstscax.cpp}::CoClass::GetClassID(), CQuickLaunchBand::GetClassID(), anonymous_namespace{mstscax.cpp}::CoClass::GetClassInfo(), GetClassKey(), GetClassMediaFile(), GetClassOfItem(), CThreadMgr::GetClientId(), anonymous_namespace{mstscax.cpp}::CoClass::GetClientSite(), anonymous_namespace{mstscax.cpp}::CoClass::GetClipboardData(), CicProfile::GetCodePageA(), GetComCtl32Version(), CQueryAssociations::GetCommand(), GetCommandString(), CQuickLaunchBand::GetCommandString(), GetCommandStringA(), CCompartmentMgr::GetCompartment(), GetCompartment(), GetCompartmentDWORD(), anonymous_namespace{mstscax.cpp}::CConnectionPoint::GetConnectionInterface(), anonymous_namespace{mstscax.cpp}::CConnectionPoint::GetConnectionPointContainer(), anonymous_namespace{mstscax.cpp}::CoClass::GetControlInfo(), CBDADeviceControl::GetControlNode(), GetConvertStg(), COutputPin::GetCurrentPosition(), CKsProxy::GetCurrentPosition(), anonymous_namespace{mstscax.cpp}::CoClass::GetData(), PIDList::GetData(), CMruBase::GetData(), anonymous_namespace{mstscax.cpp}::CoClass::GetDataHere(), CMyDocsFolder::GetDefaultColumn(), CDesktopFolder::GetDefaultColumnState(), CMyDocsFolder::GetDefaultColumnState(), GetDefaultRecycleBin(), CMyDocsFolder::GetDefaultSearchGUID(), CDefView::GetDefaultViewStream(), CDefView::GetDetailsByFolderColumn(), CDefView::GetDetailsByListColumn(), CNtObjectFolder::GetDetailsEx(), CRegistryFolder::GetDetailsEx(), CMergedFolder::GetDetailsEx(), CDesktopFolder::GetDetailsEx(), CFSFolder::GetDetailsEx(), CMyDocsFolder::GetDetailsEx(), GetDetailsOf(), CNtObjectFolder::GetDetailsOf(), CRegistryFolder::GetDetailsOf(), CMergedFolder::GetDetailsOf(), CDesktopFolder::GetDetailsOf(), CDrivesFolder::GetDetailsOf(), CFSFolder::GetDetailsOf(), CMyDocsFolder::GetDetailsOf(), CRecycleBin::GetDetailsOf(), GetDiaogTextureBrush(), GetDisplayname(), GetDisplayName(), CACListISF::GetDisplayName(), GetDisplayNameOf(), CCommonFolder< TSelf, TItemId, TExtractIcon >::GetDisplayNameOf(), CMergedFolder::GetDisplayNameOf(), CFindFolder::GetDisplayNameOf(), CDesktopFolder::GetDisplayNameOf(), CMyDocsFolder::GetDisplayNameOf(), CRegFolder::GetDisplayNameOf(), GetDriveLabel(), COutputPin::GetDuration(), CKsProxy::GetDuration(), CMruPidlList::GetEmptySlot(), CQueryAssociations::GetExecutable(), ATL::CImage::GetExporterFilterString(), anonymous_namespace{mstscax.cpp}::CoClass::GetExtent(), GetFavoritesFolder(), GetFavsLocation(), RecycleBin5File::GetFileSize(), GetFileSourceFilter(), GetFilterInfo(), GetFirstDataObject_(), CFindFolder::GetFSFolder2AndChild(), CFindFolder::GetFSFolderAndChild(), CRecycleBin::GetFSFolderForItem(), GetFullName(), GetGlobalCompartment(), CThreadMgr::GetGlobalCompartment(), GetGlobalCompartmentDWORD(), CicInputContext::GetGuidAtom(), CShellLink::GetIconLocation(), CExtractIcon::GetIconLocation(), anonymous_namespace{mstscax.cpp}::CoClass::GetIDsOfNames(), ATL::IDispatchImpl< T, piid, plibid, wMajor, wMinor >::GetIDsOfNames(), GetImageName(), ATL::CImage::GetImporterFilterString(), CNetConnectionPropertyUi::GetINetCfgComponent(), RecycleBin5File::GetInfo(), GetInterfaceNameInternal(), GetInterfaceOffset(), GetInternalConnections(), GetItemCLSID(), GetItemDescription(), CCabFolder::GetItemDetails(), CDefView::GetItemObject(), GetItemOriginalFolder(), CRegistryTree::GetKey(), GetKnownPath(), CicProfile::GetLangId(), RecycleBin5File::GetLastModificationTime(), GetLayoutName(), anonymous_namespace{mstscax.cpp}::ClassFactory::GetLicInfo(), CFindFolder::GetMaxLength(), CKsProxy::GetMediaSeekingFormats(), GetMergedFolder(), CKsProxy::GetMiscFlags(), anonymous_namespace{mstscax.cpp}::CoClass::GetMiscStatus(), anonymous_namespace{mstscax.cpp}::CoClass::GetMoniker(), GetMonitorUIFullName(), GetNetworkProviderFromGraph(), CMruNode::GetNode(), CBDADeviceControl::GetNodeDescriptors(), CBDADeviceControl::GetNodeInterfaces(), CBDADeviceControl::GetNodeTypes(), FxIrp::GetOutputBuffer(), CShellItem::GetParent(), GetParsingName(), COpenControlPanel::GetPath(), CShellLink::GetPath(), CACListISF::GetPaths(), CBDAPinControl::GetPinID(), CKsProxy::GetPinName(), CBDAPinControl::GetPinType(), CBDADeviceControl::GetPinTypes(), COutputPin::GetPositions(), CKsProxy::GetPositions(), COutputPin::GetPreroll(), CKsProxy::GetPreroll(), GetProgramFilesPath(), CNetConnection::GetProperties(), CShellBrowser::GetPropertyBag(), COutputPin::GetRate(), GetRecycleBinPathFromDriveNumber(), CSearchBar::GetSearchResultsFolder(), CConfigParser::GetSectionString(), CContext::GetSelection(), GetSelectionText(), CRegTreeOptions::GetSetState(), CFolder::GetShellFolder(), CMenuSFToolbar::GetShellFolder(), GetShellFolder1ItemDetailsExToBuffer(), GetShellFolder2ItemDetailsExToBuffer(), CQuickLaunchBand::GetSite(), CISFBand::GetSite(), CQuickLaunchBand::GetSizeMax(), CRecycleBinCleaner::GetSpaceUsed(), CSendToMenu::GetSpecialFolder(), GetSplitter(), GetStackCapabilities(), GetStartSpoolDate(), COutputPin::GetStopPosition(), CKsProxy::GetStopPosition(), CQueryAssociations::GetString(), getstring_test(), CInputPin::GetSupportedSets(), COutputPin::GetSupportedSets(), CKsProxy::GetSupportedSets(), FxIrp::GetSystemBuffer(), GetTargetInterface(), GetThemeBackgroundContentRect(), GetThemeBackgroundExtent(), GetThemeBackgroundRegion(), GetThemeDefaults(), GetThemeDocumentationProperty(), GetThemeEnumValue(), GetThemeMetric(), GetThemeParseErrorInfo(), GetThemePartSize(), GetThemeSysBool(), GetThemeSysColor(), GetThemeSysFont(), GetThemeTextExtent(), GetThemeTextMetrics(), GetThemeTransitionDuration(), CKsProxy::GetTime(), CMediaSample::GetTime(), COutputPin::GetTimeFormat(), CKsProxy::GetTimeFormat(), anonymous_namespace{mstscax.cpp}::CoClass::GetTypeInfo(), ATL::IDispatchImpl< T, piid, plibid, wMajor, wMinor >::GetTypeInfo(), anonymous_namespace{mstscax.cpp}::CoClass::GetTypeInfoCount(), GetTypeName(), CSendToMenu::GetUIObjectFromPidl(), Entry::GetUIObjectOf(), CFindFolder::GetUIObjectOf(), CCabFolder::GetUIObjectOf(), CNetworkConnections::GetUIObjectOf(), CControlPanelFolder::GetUIObjectOf(), CDesktopFolder::GetUIObjectOf(), CDrivesFolder::GetUIObjectOf(), CFSFolder::GetUIObjectOf(), CMyDocsFolder::GetUIObjectOf(), CNetFolder::GetUIObjectOf(), CPrinterFolder::GetUIObjectOf(), CRecycleBin::GetUIObjectOf(), CRegFolder::GetUIObjectOf(), CCommonFolder< TSelf, TItemId, TExtractIcon >::GetUIObjectOf(), CMergedFolder::GetUIObjectOf(), GetUIObjectOf(), GetUIObjectOfAbsolute(), GetUIObjectOfAbsPidl(), GetUIObjectOfPath(), FxIrp::GetUserBuffer(), anonymous_namespace{mstscax.cpp}::CoClass::GetUserClassID(), anonymous_namespace{mstscax.cpp}::CoClass::GetUserType(), CFindFolder::GetValidCharacters(), anonymous_namespace{mstscax.cpp}::CoClass::GetVirtualChannelOptions(), anonymous_namespace{mstscax.cpp}::CoClass::GetWindow(), CQuickLaunchBand::GetWindow(), gif_metadata_reader(), GifDecoder_QueryCapability(), GifEncoder_Commit(), GifEncoder_CreateNewFrame(), GifEncoder_GetEncoderInfo(), GifEncoder_Initialize(), GifEncoder_SetPalette(), GifFrameEncode_Commit(), GifFrameEncode_Initialize(), GifFrameEncode_SetPalette(), GifFrameEncode_SetPixelFormat(), GifFrameEncode_SetResolution(), GifFrameEncode_SetSize(), GifFrameEncode_WritePixels(), GifFrameEncode_WriteSource(), GITCF_CreateInstance(), give_feedback(), GraphConfig_Reconfigure(), guid2string(), handle_setsize(), CFolderOptions::HandleDefFolderSettings(), SEALED_::HandleEvent(), CDefViewBckgrndMenu::HandleMenuMsg(), CDefaultContextMenu::HandleMenuMsg2(), CDefViewBckgrndMenu::HandleMenuMsg2(), HandlerCF_Create(), anonymous_namespace{mstscax.cpp}::CoClass::HandsOffStorage(), has_png_transparency_chunk(), CInternetToolbar::HasFocusIO(), HCR_GetFolderAttributes(), HGLOBALStreamImpl_CopyTo(), HGLOBALStreamImpl_Seek(), HlinkBrowseContext_GetObject(), HlinkUpdateStackItem(), hook_proc(), host_object_proc(), hr_ddraw_from_wined3d(), HResultFromWin32(), HTMLElement_insertAdjacentHTML(), HTMLElement_insertAdjacentText(), HTMLEvents_Invoke(), HTMLScriptElement_put_defer(), IAMMultiMediaStreamImpl_AddMediaStream(), IAMMultiMediaStreamImpl_Initialize(), IAMMultiMediaStreamImpl_SetState(), IAssemblyCacheImpl_InstallAssembly(), IAssemblyCacheImpl_QueryAssemblyInfo(), IAssemblyCacheImpl_UninstallAssembly(), IAVIEditStream_fnCopy(), IAVIEditStream_fnCut(), IAVIStream_fnRead(), IAVIStream_fnWrite(), ICMStream_fnRead(), ICMStream_fnReadFormat(), ICMStream_fnWrite(), IcoDecoder_GetFrame(), IcoDecoder_Initialize(), IcoDecoder_QueryCapability(), ICommDlgBrowser3_fnIncludeObject(), ICommDlgBrowser3_fnOnDefaultCommand(), ICommDlgBrowser3_fnOnStateChange(), IContextMenu_Invoke(), ICreateTypeInfo2_fnSetTypeDescAlias(), ID3DXConstantTableImpl_SetDefaults(), ID3DXFontImpl_GetGlyphData(), ID3DXFontImpl_PreloadGlyphs(), ID3DXFontImpl_PreloadTextA(), IDataObject_GetDataHere_Proxy(), IDirectInput8AImpl_ConfigureDevices(), IDirectInputAImpl_GetDeviceStatus(), IDirectMusic8Impl_Activate(), IDirectMusic8Impl_CreatePort(), IDirectMusic8Impl_SetDirectSound(), IDirectMusicInstrumentImpl_CustomLoad(), IDirectPlay4AImpl_EnumConnections(), IDirectPlay4Impl_Close(), IDirectPlay4Impl_DeletePlayerFromGroup(), IDirectPlay4Impl_EnumSessions(), IDirectPlay4Impl_GetMessageQueue(), IDirectPlay4Impl_InitializeConnection(), IDirectPlayLobby3AImpl_GetConnectionSettings(), IDirectPlayLobby3AImpl_RunApplication(), IDirectPlayLobby3AImpl_SetConnectionSettings(), IDirectPlayLobby3AImpl_WaitForConnectionSettings(), IDirectPlayLobby3Impl_GetConnectionSettings(), IDirectPlayLobby3Impl_SetConnectionSettings(), IDirectPlayLobby3Impl_WaitForConnectionSettings(), IDirectPlaySPImpl_GetSPData(), IDirectPlaySPImpl_GetSPPlayerData(), IDirectPlaySPImpl_HandleMessage(), IDirectPlaySPImpl_SetSPPlayerData(), IDirectSound8_fnInitialize(), IDirectSoundCaptureBufferImpl_QueryInterface(), IDirectSoundCaptureImpl_CreateCaptureBuffer(), IDirectSoundFullDuplexImpl_Initialize(), IDirectXFileDataImpl_GetNextObject(), IDirectXFileDataReferenceImpl_Resolve(), IDirectXFileEnumObjectImpl_GetNextDataObject(), IDirectXFileImpl_CreateEnumObject(), IDirectXFileImpl_CreateSaveObject(), IDirectXFileImpl_RegisterTemplates(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IDispatch::GetIDsOfNames(), SEALED_::SEALED_::IDispatch::GetIDsOfNames(), SEALED_::IDispatch::GetIDsOfNames(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IDispatch::GetTypeInfo(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IDispatch::GetTypeInfoCount(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IDispatch::Invoke(), SEALED_::IDispatch::Invoke(), IDispatch_Invoke_Proxy(), IDispatch_Invoke_Stub(), IDxDiagContainerImpl_GetChildContainer(), IDxDiagProviderImpl_Initialize(), IEditAVIStream_fnRead(), IEditAVIStream_fnReadData(), IEditAVIStream_fnReadFormat(), IEnumConnectionPoints_Next_Stub(), IEnumConnections_Next_Stub(), IEnumDMO_Constructor(), IEnumFiltersImpl_Clone(), IEnumFiltersImpl_Construct(), IEnumFiltersImpl_Next(), IEnumFiltersImpl_Reset(), IEnumFORMATETC_Next_Stub(), IEnumMediaTypesImpl_Clone(), IEnumMoniker_Next_Stub(), IEnumNetCfgBindingInterface_fnNext(), IEnumNetCfgBindingPath_fnNext(), IEnumNetCfgComponent_fnNext(), IEnumOleUndoUnits_Next_Stub(), IEnumOLEVERB_Next_Stub(), IEnumPinsImpl_Clone(), IEnumPinsImpl_Next(), IEnumPinsImpl_Skip(), IEnumShellItems_Next_Stub(), IEnumSTATDATA_Next_Stub(), IEnumSTATSTG_Next_Stub(), IEnumSTATSTGImpl_GetNextRef(), IEnumSTATSTGImpl_Next(), IEnumSTATSTGImpl_Skip(), IEnumString_Next_Stub(), IEnumUnknown_Next_Stub(), IEnumVARIANT_Next_Stub(), IExplorerBrowserEvents_fnOnNavigationComplete(), IExplorerBrowserEvents_fnOnNavigationPending(), IFileDialog2_fnClose(), IFileDialog2_fnGetCurrentSelection(), IFileDialog2_fnGetResult(), IFileDialogCustomize_fnAddCheckButton(), IFileDialogCustomize_fnAddComboBox(), IFileDialogCustomize_fnAddControlItem(), IFileDialogCustomize_fnAddEditBox(), IFileDialogCustomize_fnAddMenu(), IFileDialogCustomize_fnAddPushButton(), IFileDialogCustomize_fnAddRadioButtonList(), IFileDialogCustomize_fnAddSeparator(), IFileDialogCustomize_fnAddText(), IFileDialogCustomize_fnStartVisualGroup(), IFileDialogEvents_fnOnFolderChange(), IFileOpenDialog_fnClose(), IFileSaveDialog_fnClose(), IFillLockBytes_FillAppend_Proxy(), IFillLockBytes_FillAt_Proxy(), ifproxy_get_public_ref(), ifproxy_release_public_refs(), IGetFrame_fnSetFormat(), IHlinkBC_GetObject(), IHlinkBC_Register(), IHlinkBC_UpdateHlink(), ILGetConnection(), ILIsEqual(), ILockBytes_ReadAt_Proxy(), ILockBytes_WriteAt_Proxy(), ImagingFactory_CreateBitmapFromHBITMAP(), ImagingFactory_CreateBitmapFromHICON(), ImagingFactory_CreateBitmapFromMemory(), ImagingFactory_CreateDecoderFromFileHandle(), ImagingFactory_CreateDecoderFromFilename(), IMAPTransport_Connect(), IMAPTransportCF_CreateInstance(), ImeToAsciiEx(), CIMEUIWindowHandler::ImeUIMsImeMouseHandler(), IMILBitmapScaler_GetPixelFormat(), IMILBitmapScaler_Initialize(), Imm32ActivateOrDeactivateTIM(), ImmDisableTextFrameService(), FxRequest::Impersonate(), implicit_mta_marshal_proc(), implicit_mta_proc(), implicit_mta_unmarshal_proc(), implicit_mta_use_proc(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings2::get_CanAutoReconnect(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings2::get_EnableAutoReconnect(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings2::get_MaxReconnectAttempts(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings2::put_EnableAutoReconnect(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings2::put_MaxReconnectAttempts(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings3::get_ConnectionBarShowMinimizeButton(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings3::get_ConnectionBarShowRestoreButton(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings3::put_ConnectionBarShowMinimizeButton(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings3::put_ConnectionBarShowRestoreButton(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings4::get_AuthenticationLevel(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings4::put_AuthenticationLevel(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_AcceleratorPassthrough(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_BitmapCacheSize(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_BitmapPersistence(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_BitmapVirtualCache16BppSize(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_BitmapVirtualCache24BppSize(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_BitmapVirtualCacheSize(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_brushSupportLevel(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_CachePersistenceActive(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_ConnectToServerConsole(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_DedicatedTerminal(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_DisableCtrlAltDel(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_DisplayConnectionBar(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_DoubleClickDetect(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_EnableMouse(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_EnableWindowsKey(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_EncryptionEnabled(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_GrabFocusOnConnect(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_HotKeyAltEsc(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_HotKeyAltShiftTab(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_HotKeyAltSpace(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_HotKeyAltTab(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_HotKeyCtrlAltDel(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_HotKeyCtrlEsc(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_HotKeyFullScreen(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_InputEventsAtOnce(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_keepAliveInterval(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_KeyboardFunctionKey(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_KeyboardSubType(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_KeyboardType(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_LoadBalanceInfo(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_maxEventCount(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_MaximizeShell(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_minInputSendInterval(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_MinutesToIdleTimeout(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_NotifyTSPublicKey(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_NumBitmapCaches(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_orderDrawThreshold(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_overallConnectionTimeout(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_PerformanceFlags(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_PinConnectionBar(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_RdpdrClipCleanTempDirString(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_RdpdrClipPasteInfoString(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_RdpdrLocalPrintingDocName(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_RDPPort(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_RedirectDrives(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_RedirectPorts(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_RedirectPrinters(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_RedirectSmartCards(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_SasSequence(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_ScaleBitmapCachesByBPP(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_ShadowBitmap(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_shutdownTimeout(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_singleConnectionTimeout(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_SmartSizing(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_SmoothScroll(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_TransportType(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::get_WinceFixedPalette(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_AcceleratorPassthrough(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_BitmapCacheSize(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_BitmapPersistence(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_BitmapVirtualCache16BppSize(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_BitmapVirtualCache24BppSize(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_BitmapVirtualCacheSize(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_brushSupportLevel(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_CachePersistenceActive(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_ClearTextPassword(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_ConnectToServerConsole(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_ConnectWithEndpoint(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_DedicatedTerminal(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_DisableCtrlAltDel(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_DisplayConnectionBar(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_DoubleClickDetect(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_EnableMouse(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_EnableWindowsKey(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_EncryptionEnabled(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_GrabFocusOnConnect(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_HotKeyAltEsc(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_HotKeyAltShiftTab(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_HotKeyAltSpace(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_HotKeyAltTab(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_HotKeyCtrlAltDel(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_HotKeyCtrlEsc(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_HotKeyFullScreen(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_InputEventsAtOnce(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_keepAliveInterval(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_KeyboardFunctionKey(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_KeyboardSubType(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_KeyboardType(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_LoadBalanceInfo(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_maxEventCount(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_MaximizeShell(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_minInputSendInterval(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_MinutesToIdleTimeout(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_NotifyTSPublicKey(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_NumBitmapCaches(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_orderDrawThreshold(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_overallConnectionTimeout(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_PerformanceFlags(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_PersistCacheDirectory(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_PinConnectionBar(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_RdpdrClipCleanTempDirString(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_RdpdrClipPasteInfoString(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_RdpdrLocalPrintingDocName(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_RDPPort(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_RedirectDrives(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_RedirectPorts(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_RedirectPrinters(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_RedirectSmartCards(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_SasSequence(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_ScaleBitmapCachesByBPP(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_ShadowBitmap(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_shutdownTimeout(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_singleConnectionTimeout(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_SmartSizing(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_SmoothScroll(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_TransportType(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsRdpClientAdvancedSettings::put_WinceFixedPalette(), anonymous_namespace{mstscax.cpp}::CoClass::IMsRdpClientNonScriptable2::get_UIParentWindowHandle(), anonymous_namespace{mstscax.cpp}::CoClass::IMsRdpClientNonScriptable2::put_UIParentWindowHandle(), anonymous_namespace{mstscax.cpp}::CoClass::IMsRdpClientNonScriptable::NotifyRedirectDeviceChange(), anonymous_namespace{mstscax.cpp}::CoClass::IMsRdpClientNonScriptable::SendKeys(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::get_allowBackgroundInput(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::get_BitmapPeristence(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::get_Compress(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::get_ContainerHandledFullScreen(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::get_DisableRdpdr(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::put_allowBackgroundInput(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::put_BitmapPeristence(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::put_Compress(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::put_ContainerHandledFullScreen(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::put_DisableRdpdr(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::put_IconFile(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::put_IconIndex(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::put_KeyBoardLayoutStr(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::IMsTscAdvancedSettings::put_PluginDlls(), SEALED_::IMsTscAx::Connect(), inc_ext_ref(), inc_int_ref(), indexbuffer_init(), INetCfg_fnFindComponent(), INetCfg_fnInitialize(), INetCfgComponent_fnRaisePropertyUi(), INetCfgComponentPropertyUi_fnMergePropPages(), INetCfgComponentPropertyUi_fnQueryPropertyUi(), INetCfgLock_fnIsWriteLocked(), inf_load(), inf_process_content(), info_get_name(), RecycleBin5Enum::Init(), RecycleBin5::Init(), CQueryAssociations::Init(), CRegistryKey::Init(), DesktopWindow::Init(), CFolderItemVerbs::Init(), init_cache_entry(), init_d3d9(), init_decoder(), init_explorerbrowser(), init_function_pointers(), init_functionpointers(), init_linklist(), init_members(), init_memstream(), init_multi_qi(), init_output_buffer(), init_pastelist(), init_pointers(), init_saxdeclhandler(), init_saxlexicalhandler(), init_set_constants_param(), init_TCPIP_provider(), init_test_mesh(), InitDisplayAttrbuteLib(), anonymous_namespace{mstscax.cpp}::CoClass::InitFromData(), CTipbarAccessible::Initialize(), CNetConnectionManager::Initialize(), CEnumIDList::Initialize(), FxInterruptThreadpool::Initialize(), FxInterruptWaitblock::Initialize(), CComCatCachedCategory::Initialize(), CDefaultContextMenu::Initialize(), CRegFolderEnum::Initialize(), CIDLDataObj::Initialize(), CFontExt::Initialize(), CCleanupHandler::Initialize(), CFolderItems::Initialize(), CFileSysEnum::Initialize(), CFindFolder::Initialize(), CControlPanelFolder::Initialize(), CFSFolder::Initialize(), CDrvDefExt::Initialize(), BtrfsPropSheet::Initialize(), CCopyMoveToMenu::Initialize(), CShellLink::Initialize(), CFileDefExt::Initialize(), CZipFolder::Initialize(), CLayerUIPropPage::Initialize(), Initialize(), CSHEnumClassesOfCategories::Initialize(), initialize(), initialize_decoder_wic(), CFSFolder::InitializeEx(), CNetConnectionPropertyUi::InitializeLANPropertiesUIDlg(), CLanStatus::InitializeNetTaskbarNotifications(), InitializeSecurity(), CISFBand::InitializeSFB(), InitializeShellFolder_(), CSysTray::InitIcons(), CicBridge::InitIMMX(), CDefView::InitList(), CMruPidlList::InitList(), CFileDefExt::InitMultifilePageThread(), CSysTray::InitNetShell(), anonymous_namespace{mstscax.cpp}::CoClass::InitNew(), CicProfile::InitProfileInstance(), CRegistryKey::InitRoot(), InitShellServices(), InitWebBrowser(), InPlaceActiveObject_TranslateAccelerator(), anonymous_namespace{mstscax.cpp}::CoClass::InPlaceDeactivate(), insert_static_object(), CSendToMenu::InsertSendToItems(), CContext::InsertTextAtSelection(), install_assembly(), install_init(), install_policy(), InstalledRuntimeEnum_Next(), InstalledRuntimeEnum_Skip(), InstallEngine2_SetLocalCif(), InstallEngine_EnumDownloadIDs(), InstallEngine_SetAction(), Installer_CreateRecord(), Installer_OpenDatabase(), Installer_OpenPackage(), Installer_ProductInfo(), Installer_Products(), Installer_ProductState(), Installer_RegistryValueE(), Installer_RegistryValueI(), Installer_RegistryValueW(), Installer_RelatedProducts(), Installer_SummaryInformation(), Installer_VersionGet(), InstallerImpl_CreateRecord(), InstallerImpl_InstallProduct(), InstallerImpl_OpenDatabase(), InstallerImpl_OpenPackage(), InstallerImpl_OpenProduct(), InstallerImpl_ProductInfo(), InstallerImpl_Products(), InstallerImpl_ProductState(), InstallerImpl_RegistryValue(), InstallerImpl_RelatedProducts(), InstallerImpl_SummaryInformation(), InstallerImpl_UILevel(), InstallerImpl_Version(), InstallFontFiles(), InstallNetworkComponent(), InstanceObjectFactory_Constructor(), InstanceObjectFactory_IClassFactory_CreateInstance(), CMenuStaticToolbar::InternalContextMenu(), CMenuSFToolbar::InternalContextMenu(), InternalDirectSoundCaptureCreate(), InternalDirectSoundCreate(), CRegistryTree::InternalGetSubkey(), CMenuSFToolbar::InternalHasSubMenu(), CMenuStaticToolbar::InternalPopupItem(), CMenuSFToolbar::InternalPopupItem(), InternetCanonicalizeUrlA(), InternetCanonicalizeUrlW(), InternetCombineUrlA(), InternetCombineUrlW(), InternetExplorerManager_Create(), anonymous_namespace{mstscax.cpp}::CoClass::Invoke(), ATL::IDispatchImpl< T, piid, plibid, wMajor, wMinor >::Invoke(), invoke(), CSendToMenu::InvokeCommand(), CCopyMoveToMenu::InvokeCommand(), CDefViewBckgrndMenu::InvokeCommand(), CNewMenu::InvokeCommand(), COpenWithMenu::InvokeCommand(), CRecycleBinItemContextMenu::InvokeCommand(), CRecycleBin::InvokeCommand(), CNetConUiObject::InvokeCommand(), CShellLink::InvokeCommand(), CQuickLaunchBand::InvokeCommand(), CISFBand::InvokeCommand(), CDefView::InvokeContextMenuCommand(), InvokeIExecuteCommandWithDataObject(), InvokeOpenWith(), CDefaultContextMenu::InvokePidl(), CDefaultContextMenu::InvokeRegVerb(), InvokeShellExecuteHook(), anonymous_namespace{mstscax.cpp}::CoClass::IObjectSafety::GetInterfaceSafetyOptions(), anonymous_namespace{mstscax.cpp}::CoClass::IObjectSafety::SetInterfaceSafetyOptions(), IOCS_Create(), SEALED_::IOleObject::Advise(), SEALED_::IOleObject::DoVerb(), SEALED_::IOleObject::EnumAdvise(), SEALED_::IOleObject::Unadvise(), COutputPin::IoProcessRoutine(), anonymous_namespace{mstscax.cpp}::CoClass::IPersistStorage::InitNew(), anonymous_namespace{mstscax.cpp}::CoClass::IPersistStorage::IsDirty(), anonymous_namespace{mstscax.cpp}::CoClass::IPersistStorage::Load(), anonymous_namespace{mstscax.cpp}::CoClass::IPersistStorage::Save(), anonymous_namespace{mstscax.cpp}::CoClass::IPersistStreamInit::GetSizeMax(), anonymous_namespace{mstscax.cpp}::CoClass::IPersistStreamInit::InitNew(), anonymous_namespace{mstscax.cpp}::CoClass::IPersistStreamInit::IsDirty(), anonymous_namespace{mstscax.cpp}::CoClass::IPersistStreamInit::Load(), anonymous_namespace{mstscax.cpp}::CoClass::IPersistStreamInit::Save(), ipid_get_dispatch_params(), IPropertyBag_Read_Stub(), IPropertyStorage_fnCommit(), IPropertyStorage_fnDeleteMultiple(), IPropertyStorage_fnDeletePropertyNames(), IPropertyStorage_fnReadMultiple(), IPropertyStorage_fnReadPropertyNames(), IPropertyStorage_fnRevert(), IPropertyStorage_fnStat(), IPropertyStorage_fnWriteMultiple(), IPropertyStorage_fnWritePropertyNames(), anonymous_namespace{mstscax.cpp}::CoClass::IProvideClassInfo2::GetGUID(), SEALED_::IProvideClassInfo::GetClassInfo(), anonymous_namespace{mstscax.cpp}::CoClass::IQuickActivate::GetContentExtent(), anonymous_namespace{mstscax.cpp}::CoClass::IQuickActivate::QuickActivate(), anonymous_namespace{mstscax.cpp}::CoClass::IQuickActivate::SetContentExtent(), IRecordInfoImpl_RecordCopy(), IRichEditOle_fnInsertObject(), IrotEnumRunning(), IrotGetObject(), IrotGetTimeOfLastChange(), IrotIsRunning(), IrotRegister(), IrotRevoke(), is_autogenmipmap_supported(), is_firewall_enabled(), is_pixelformat(), isaxerrorHandler_fatalError(), CShellBrowser::IsControlWindowShown(), CQuickLaunchBand::IsDirty(), ISequentialStream_Read_Proxy(), ISequentialStream_Write_Proxy(), IServiceProvider_fnQueryService(), IsFormatAdvertised_(), COutputPin::IsFormatSupported(), CKsProxy::IsFormatSupported(), IShellFolder_CompareIDs(), IShellFolder_GetDisplayNameOf(), IShellLink_ConstructFromPath(), CShellBrowser::IsInternetToolbarBandShown(), iso2022jp_mbtowc(), iso2022jp_wctomb(), CicBridge::IsOwnDim(), anonymous_namespace{mstscax.cpp}::CoClass::ISpecifyPropertyPages::GetPages(), IsRecycleBinEmpty(), IsSelfShellVerb(), CMenuFocusManager::IsTrackedWindow(), CMenuFocusManager::IsTrackedWindowOrParent(), IStream_CopyTo_Proxy(), IStream_Seek_Proxy(), anonymous_namespace{mstscax.cpp}::CoClass::IsUpToDate(), COutputPin::IsUsingTimeFormat(), CQuickLaunchBand::IsWindowOwner(), CFolderItems::Item(), CFolderItemVerbs::Item(), itemize_para(), ItemMenuCallback(), ItemMoniker_CreateInstance(), ItemMonikerImpl_QueryInterface(), ITERATE_RegisterTypeLibraries(), iterate_section_fields(), ITERATE_UnregisterTypeLibraries(), ITextDocument2Old_fnGetIDsOfNames(), ITextDocument2Old_fnGetTypeInfo(), ITextDocument2Old_fnInvoke(), ITextRange_fnGetIDsOfNames(), ITextRange_fnGetTypeInfo(), ITextRange_fnInvoke(), ITextSelection_fnCopy(), ITextSelection_fnCut(), ITextSelection_fnEndOf(), ITextSelection_fnExpand(), ITextSelection_fnGetFont(), ITextSelection_fnGetIDsOfNames(), ITextSelection_fnGetPara(), ITextSelection_fnGetTypeInfo(), ITextSelection_fnInvoke(), ITextSelection_fnMove(), ITextSelection_fnMoveEnd(), ITextSelection_fnMoveStart(), ITextSelection_fnSetEnd(), ITextSelection_fnSetStart(), ITextSelection_fnStartOf(), ITmpFile_fnGetStream(), ITypeComp_Bind_Proxy(), ITypeComp_Bind_Stub(), ITypeComp_BindType_Proxy(), ITypeComp_BindType_Stub(), ITypeComp_fnBind(), ITypeInfo2_GetDocumentation2_Proxy(), ITypeInfo_fnAddressOfMember(), ITypeInfo_fnCreateInstance(), ITypeInfo_fnGetFuncDesc(), ITypeInfo_fnGetRefTypeOfImplType(), ITypeInfo_GetContainingTypeLib_Proxy(), ITypeInfo_GetDllEntry_Proxy(), ITypeInfo_GetDocumentation_Proxy(), ITypeInfo_GetFuncDesc_Stub(), ITypeInfo_GetTypeAttr_Stub(), ITypeInfo_GetVarDesc_Stub(), ITypeInfoImpl_GetDispatchRefTypeInfo(), ITypeInfoImpl_GetInternalDispatchFuncDesc(), ITypeLib2_GetDocumentation2_Proxy(), ITypeLib_GetDocumentation_Proxy(), ITypeLib_GetLibAttr_Stub(), ITypeLibComp_fnBind(), IUnknown_AddOptions(), IUnknown_GetClassID(), IUnknown_InitializeCommand(), IUnknown_ProfferService(), IUnknown_QueryServiceExec(), IUnknown_QueryServicePropertyBag(), IUnknown_SetOwner(), IUnknown_SetSite(), anonymous_namespace{mstscax.cpp}::CoClass::IViewObject2::GetExtent(), anonymous_namespace{mstscax.cpp}::CoClass::IViewObject::Draw(), anonymous_namespace{mstscax.cpp}::CoClass::IViewObject::Freeze(), anonymous_namespace{mstscax.cpp}::CoClass::IViewObject::GetAdvise(), anonymous_namespace{mstscax.cpp}::CoClass::IViewObject::GetColorSet(), anonymous_namespace{mstscax.cpp}::CoClass::IViewObject::SetAdvise(), anonymous_namespace{mstscax.cpp}::CoClass::IViewObject::Unfreeze(), IWICStreamImpl_InitializeFromFilename(), IWICStreamImpl_InitializeFromIStream(), joystick_tests(), JoystickAGenericImpl_BuildActionMap(), JoystickAGenericImpl_SetActionMap(), JpegDecoder_CreateInstance(), JpegEncoder_CreateInstance(), keyboard_tests(), CKsInterfaceHandler::KsCompleteIo(), CKsAllocator::KsCreateAllocatorAndGetHandle(), KsGetMediaType(), KsGetMediaTypeCount(), CKsInterfaceHandler::KsProcessMediaSamples(), CInputPin::KsPropagateAcquire(), COutputPin::KsPropagateAcquire(), COutputPin::KsProperty(), CInputPin::KsQueryInterfaces(), COutputPin::KsQueryInterfaces(), CInputPin::KsQueryMediums(), COutputPin::KsQueryMediums(), CKsInterfaceHandler::KsSetPin(), LangBarMgr_Constructor(), CNetConnectionPropertyUi::LANPropertiesUIDlg(), LaunchINFSectionA(), LaunchINFSectionExA(), LaunchINFSectionExW(), LaunchINFSectionW(), list_invoke(), list_to_string(), ListEnumerator_Clone(), ListFilters(), ListVolumes(), CQuickLaunchBand::Load(), anonymous_namespace{mstscax.cpp}::CoClass::Load(), CKsProxy::Load(), CInternetToolbar::Load(), Load(), CShellLink::Load(), CSettings::Load(), load_APE_metadata(), load_ciffile(), load_cube_texture_from_dds(), load_data(), load_dib(), load_driver_devices(), load_emf(), BtrfsPropSheet::load_file_list(), load_frame(), load_GCE_metadata(), load_GifComment_metadata(), load_IFD_entry(), load_image(), load_IMD_metadata(), load_local_constants(), load_LSD_metadata(), load_manifest(), load_mesh_container(), load_mesh_data(), load_mf_pict(), load_ole_stream(), load_stream(), load_streams(), load_texture_from_dds(), load_typelib(), load_volume_texture_from_dds(), load_wmf(), CSendToMenu::LoadAllItems(), LoadAndInitialize(), LoadBootIni(), LoadChrmMetadata(), CDefView::LoadColumn(), CDefView::LoadColumns(), LoadColumnsStream(), SEALED_::SEALED_::LoadDispTypeInfo(), SEALED_::LoadDispTypeInfo(), CDefaultContextMenu::LoadDynamicContextMenuHandler(), LoadFilter(), CComCatCachedCategory::LoadFromComCatMgr(), LoadGamaMetadata(), LoadHistMetadata(), LoadIfdMetadata(), LoadImageFromFileHandle(), LoadImageFromPath(), CInputPin::LoadProxyPlugins(), COutputPin::LoadProxyPlugins(), CKsProxy::LoadProxyPlugins(), LoadRdpSettingsFromFile(), loadShell32(), LoadSystemIni(), LoadTextMetadata(), LoadTimeMetadata(), SEALED_::LoadTypeLibrary(), LoadUnknownMetadata(), CDefView::LoadViewState(), LoadWinTypeFromCHM(), local_server_GetClassID(), local_server_proc(), locator_ConnectServer(), locator_GetIDsOfNames(), locator_Invoke(), lock_surface(), anonymous_namespace{mstscax.cpp}::ClassFactory::LockServer(), LPK_DrawUnderscore(), LpkGetCharacterPlacement(), LpkGetTextExtentExPoint(), LPSAFEARRAY_UserMarshal(), LPSAFEARRAY_UserSize(), LPSAFEARRAY_UserUnmarshal(), LresultFromObject(), CDefView::LV_FindItemByPidl(), main(), main_test(), ManualResetEvent_Construct(), CMyDocsFolder::MapColumnToSCID(), ATL::CAtlFileMappingBase::MapFile(), FxCmResList::MapIoSpaceWorker(), ATL::CAtlFileMappingBase::MapSharedMem(), MapVerbToCmdId(), CDefaultContextMenu::MapVerbToCmdId(), marshal_object(), master_IReferenceClock_GetTime(), match_smart_tee_pin(), matchGUID(), MayExecForwardMockup(), MayQSForwardMockup(), MCICDA_GetStatus(), MCICDA_Play(), MCICDA_playLoop(), MCIQTZ_mciOpen(), MCIQTZ_mciPause(), MCIQTZ_mciPlay(), MCIQTZ_mciPut(), MCIQTZ_mciResume(), MCIQTZ_mciSeek(), MCIQTZ_mciSetAudio(), MCIQTZ_mciStatus(), MCIQTZ_mciUpdate(), MCIQTZ_mciWhere(), MCIQTZ_notifyThread(), ME_MakeEditor(), MediaDet_get_Filename(), MediaDet_get_FrameRate(), MediaDet_get_OutputStreams(), MediaDet_get_StreamMediaType(), MediaDet_put_CurrentStream(), MediaDet_put_Filename(), MediaFilter_SetSyncSource(), MediaPosition_get_CurrentPosition(), MediaPosition_get_Duration(), MediaPosition_get_StopTime(), MediaPosition_put_CurrentPosition(), MediaPosition_put_StopTime(), MediaPositionPassThru_CanSeekBackward(), MediaPositionPassThru_CanSeekForward(), MediaPositionPassThru_get_CurrentPosition(), MediaPositionPassThru_get_Duration(), MediaPositionPassThru_get_PrerollTime(), MediaPositionPassThru_get_Rate(), MediaPositionPassThru_get_StopTime(), MediaPositionPassThru_Invoke(), MediaPositionPassThru_put_CurrentPosition(), MediaPositionPassThru_put_PrerollTime(), MediaPositionPassThru_put_Rate(), MediaPositionPassThru_put_StopTime(), MediaSeeking_CheckCapabilities(), MediaSeeking_GetCapabilities(), MediaSeeking_GetCurrentPosition(), MediaSeeking_GetDuration(), MediaSeeking_GetPositions(), MediaSeeking_GetStopPosition(), MediaSeeking_SetPositions(), MediaSeekingPassThru_CheckCapabilities(), MediaSeekingPassThru_ConvertTimeFormat(), MediaSeekingPassThru_GetAvailable(), MediaSeekingPassThru_GetCapabilities(), MediaSeekingPassThru_GetCurrentPosition(), MediaSeekingPassThru_GetDuration(), MediaSeekingPassThru_GetPositions(), MediaSeekingPassThru_GetPreroll(), MediaSeekingPassThru_GetRate(), MediaSeekingPassThru_GetStopPosition(), MediaSeekingPassThru_GetTimeFormat(), MediaSeekingPassThru_IsFormatSupported(), MediaSeekingPassThru_IsUsingTimeFormat(), MediaSeekingPassThru_QueryPreferredFormat(), MediaSeekingPassThru_SetPositions(), MediaSeekingPassThru_SetRate(), MediaSeekingPassThru_SetTimeFormat(), MediaStreamFilterImpl_AddMediaStream(), MemInputPin_Receive(), MemInputPin_ReceiveMultiple(), CFindFolder::MessageSFVCB(), CShellFolderViewCBWrapper::MessageSFVCB(), CFSFolder::MessageSFVCB(), MetadataHandler_GetMetadataFormat(), MetadataHandler_GetMetadataHandlerInfo(), MetadataHandler_GetValue(), MetadataHandler_GetValueByIndex(), MetadataHandler_LoadEx(), MetadataHandlerEnum_Clone(), MetadataHandlerEnum_Next(), MetadataReader_Create(), MetadataReaderInfo_MatchesPattern(), METAFILE_CreateCompressedImageStream(), metafile_deserialize_image(), METAFILE_FillEmfPlusBitmap(), METAFILE_GraphicsDeleted(), midi_port_create(), MimeBody_GetParameters(), MimeBody_GetProp(), MimeBody_GetPropInfo(), MimeBody_SetOption(), MimeBody_SetProp(), MimeInternat_CanConvertCodePages(), MimeInternat_ConvertBuffer(), MimeInternat_ConvertString(), MimeInternat_FindCharset(), MimeInternat_GetCharsetInfo(), MimeInternat_GetCodePageCharset(), MimeInternat_GetDefaultCharset(), MimeMessage_BindToObject(), MimeMessage_CountBodies(), MimeMessage_FindNext(), MimeMessage_GetAttachments(), MimeMessage_GetBody(), MimeMessage_GetBodyProp(), MimeMessage_GetTextBody(), MimeMessage_IsBodyType(), MimeMessage_IsContentType(), MimeMessage_SetOption(), MimeOleCreateVirtualStream(), MimeOleFindCharset(), MimeOleGetCharsetInfo(), MimeOleGetDefaultCharset(), MkParseDisplayName(), mlang_getcodepageinfo(), mlang_getcsetinfo(), mlang_getcsetinfo_from_cp(), mlang_mbtowc(), mlang_wctomb(), MMDevEnum_GetDefaultAudioEndpoint(), MMDevEnum_GetDevice(), MMDevice_Activate(), MMDevice_GetPropValue(), MMDevice_SetPropValue(), MMDevPropStore_GetAt(), MMDevPropStore_GetCount(), ModifyShellContextMenu(), Moniker_BindToObject(), MonikerMarshal_GetMarshalSizeMax(), MonikerMarshal_UnmarshalInterface(), mono_assembly_search_hook_fn(), mouse_tests(), MPEGSplitter_create(), MPEGSplitter_first_request(), MPEGSplitter_pre_connect(), MPEGSplitter_process_sample(), MPEGSplitter_seek(), mqr_GetMetadataByName(), MRUList_DataList_0(), MRUList_DataList_1(), MRUList_DataList_2(), MRUList_PidlList_0(), mscorecf_CreateInstance(), MSI_ApplicablePatchXML(), msi_commit_streams(), MSI_CommitTables(), msi_create_assembly_enum(), MSI_DatabaseApplyTransformW(), msi_download_file(), msi_get_assembly_path(), msi_get_stream(), msi_get_suminfo(), msi_install_assembly(), msi_patch_assembly(), MSI_RecordSetStreamFromFileW(), msi_table_apply_transform(), msi_uninstall_assembly(), MsiActiveScriptSite_GetItemInfo(), MsiActiveScriptSite_OnScriptError(), MsiGetFileSignatureInformationW(), MSSTYLES_GetPropertyFont(), MSSTYLES_OpenThemeFile(), MSTASK_ITaskScheduler_NewWorkItem(), MXAttributes_addAttribute(), MXWriter_create(), mxwriter_get_output(), mxwriter_put_encoding(), mxwriter_put_output(), my_SHBindToParent(), name_from_pidl(), name_GetVersion(), CShellDispatch::NameSpace(), namespacemanager_getDeclaredPrefix(), namespacemanager_getPrefix(), namespacemanager_getURI(), BrowserNavigator::navigated(), NdrInterfacePointerMarshall(), NdrInterfacePointerUnmarshall(), NdrProxyGetBuffer(), NdrProxySendReceive(), NdrStubGetBuffer(), netfw_rules_GetIDsOfNames(), netfw_rules_Invoke(), new_test_context(), new_thread(), CProfilesEnumGuid::Next(), CEnumTfLanguageProfiles::Next(), RecycleBinGenericEnum::Next(), RecycleBin5Enum::Next(), anonymous_namespace{mstscax.cpp}::CEnumConnections::Next(), anonymous_namespace{mstscax.cpp}::CEnumConnectionPoints::Next(), CEnumExplorerCommand::Next(), CNetConnectionManager::Next(), CEnumZipContents::Next(), CEnumFonts::Next(), CEnumRegRoot::Next(), CEnumRegKey::Next(), CEnumNTDirectory::Next(), CEnumIDListBase::Next(), CACListISF::Next(), CAutoComplete::Next(), CEnumIDList::Next(), CEnumTfLanguageProfiles::next_LanguageProfile(), CACListISF::NextLocation(), no_couninitialize_client_proc(), no_couninitialize_server_proc(), node_to_string(), NonOleAutomation_GetTypeInfo(), NoStatStreamImpl_CopyTo(), notify_if_changed(), CInputPin::NotifyAllocator(), NotifyIME(), NtStatusToHResult(), NullRenderer_create(), NullRendererInner_QueryInterface(), object_GetIDsOfNames(), object_Invoke(), object_load_callback_frame(), ObjectFromLresult(), objectset_get__NewEnum(), objectset_GetIDsOfNames(), objectset_Invoke(), objectset_ItemIndex(), ok_attributes_(), ok_displayname_(), ole_server(), OleAdviseHolderImpl_EnumAdvise(), OleAdviseHolderImpl_SendOnClose(), OleAdviseHolderImpl_SendOnRename(), OleAdviseHolderImpl_SendOnSave(), OleCreateEmbeddingHelper(), OleCreateFontIndirect(), OleCreateFromDataEx(), OleCreateFromFileEx(), OleCreatePictureIndirect(), OleCreateStaticFromData(), OleDoAutoConvert(), OleFlushClipboard(), OLEFontImpl_Invoke(), OleGetClipboard(), OleInitialize(), OleIsCurrentClipboard(), OleIsRunning(), OleLoadPicture(), OleLoadPictureEx(), OleLoadPictureFile(), OLEPictureImpl_Construct(), OLEPictureImpl_Invoke(), OLEPictureImpl_Load(), OLEPictureImpl_LoadWICDecoder(), OLEPictureImpl_LoadWICSource(), OLEPictureImpl_SaveAsFile(), OleQueryCreateFromData(), OleRegGetMiscStatus(), OleSetClipboard(), on_command_filetype(), on_default_action(), CShellBrowser::OnAddToFavorites(), anonymous_namespace{mstscax.cpp}::CoClass::OnAmbientPropertyChange(), CAutoComplete::OnAutoCompStart(), OnBrowseButton(), CDefView::OnChangeNotify(), CicInputContext::OnCleanupContext(), CTrayNotifyWnd::OnCreate(), CDefView::OnCreate(), IShellBrowserImpl::OnDefaultCommand(), CShellBrowser::OnDestroy(), anonymous_namespace{mstscax.cpp}::CoClass::OnDocWindowActivate(), anonymous_namespace{mstscax.cpp}::CoClass::OnFrameWindowActivate(), CShellMenuCallback::OnGetContextMenu(), CShellMenuCallback::OnGetSubMenu(), CShellLink::OnInitDialog(), CEditCompatModes::OnInitDialog(), CShellMenuCallback::OnInitMenu(), CContext::OnLockGranted(), anonymous_namespace{mstscax.cpp}::CoClass::OnMnemonic(), CTrayWindow::OnNotify(), CDefView::OnNotify(), CTrayWindow::OnOpenStartMenu(), CShellBrowser::OnOrganizeFavorites(), CMenuToolbarBase::OnPopupTimer(), CMenuBand::OnPosRectChangeDB(), SEALED_::OnPublicKey(), CSearchBar::OnSearchButtonClicked(), CicBridge::OnSetOpenStatus(), CBaseBar::OnSize(), CContext::OnStatusChange(), CSearchBar::OnStopButtonClicked(), CTipbarWnd::OnThreadTerminate(), ShellBrowser::OnTreeItemRClick(), CMenuToolbarBase::OnWinEvent(), CQuickLaunchBand::OnWinEvent(), CBandSiteBase::OnWinEvent(), CISFBand::OnWinEvent(), CInternetToolbar::OnWinIniChange(), COpenControlPanel::Open(), Open(), open_stream(), OpenControlPanelItem(), OpenFolder(), ATL::CAtlFileMappingBase::OpenMapping(), CShellBrowser::OpenNewBrowserWindow(), OpenServiceHelper(), MainFrameBase::OpenShellFolders(), CRegistryKey::OpenSubkey(), OpensWithExplorer(), ATL::CAtlFileMappingBase::operator=(), out_flush(), out_seek(), out_write(), OutputQueue_ReceiveMultiple(), PaletteImpl_InitializeFromBitmap(), PaletteImpl_InitializeFromPalette(), parse_anchor(), parse_assembly(), parse_clr_metadata(), parse_config(), parse_config_file(), parse_contents_stream(), parse_ctab_constant_type(), parse_display_name(), parse_domain(), parse_files(), parse_frame(), parse_friendly(), parse_headers(), parse_material(), parse_material_list(), parse_mesh(), parse_normals(), parse_path(), parse_pres_streams(), parse_preshader(), parse_resource(), parse_schema(), parse_site(), parse_skin_mesh_info(), parse_startup(), parse_supported_runtime(), parse_text(), parse_texture_coords(), parse_texture_filename(), parse_transform_matrix(), parse_url_from_path(), parse_vertex_colors(), CNetworkConnections::ParseDisplayName(), CDesktopFolder::ParseDisplayName(), CDrivesFolder::ParseDisplayName(), CFSFolder::ParseDisplayName(), CMyDocsFolder::ParseDisplayName(), CNetFolder::ParseDisplayName(), CRegFolder::ParseDisplayName(), CCommonFolder< TSelf, TItemId, TExtractIcon >::ParseDisplayName(), CMergedFolder::ParseDisplayName(), ParseDisplayName(), CFolder::ParseName(), CAddressEditBox::ParseNow(), Parser_AddPin(), Parser_Create(), Parser_Destroy(), Parser_GetState(), Parser_OutputPin_BreakConnect(), Parser_OutputPin_DecideAllocator(), Parser_Pause(), Parser_PullPin_Disconnect(), Parser_PullPin_ReceiveConnection(), Parser_RemoveOutputPins(), Parser_Run(), ParseToolsList(), ParseURLFromOutsideSourceW(), paste_emf(), paste_rtf(), paste_special(), paste_text(), path_from_pidlA(), path_from_pidlW(), path_GetKeyList(), path_GetText(), path_SetText(), PathAllocCombine(), PathCchAddExtension(), PathCchAppendEx(), PathCchCanonicalizeEx(), PathCchCombineEx(), PathCchRemoveExtension(), PathCchRenameExtension(), PathCreateFromUrlAlloc(), PathCreateFromUrlW(), PathIsURLA(), PathIsURLW(), PathToIDList(), CKsProxy::Pause(), perform_editor_undo_state_action(), perform_redo_(), perform_undo_(), CKsProxy::PerformClockProperty(), CDownloadManager::PerformDownloadAndInstall(), CScanningTunner::performDVBTTune(), PersistFile_GetCurFile(), PersistFile_Load(), PersistFile_Save(), PersistStream_Load(), picture_render(), PidlListSort(), pin_matches(), pixel_shader_init(), PixelFormatInfo_GetChannelMask(), pixelshader_init(), png_decoder_get_metadata_blocks(), png_decoder_initialize(), png_metadata_reader(), PngDecoder_CreateInstance(), PngEncoder_CreateInstance(), PointerMoniker_CreateInstance(), PointerMonikerImpl_ParseDisplayName(), POP3Transport_CallbackProcessDELEResp(), POP3Transport_CallbackProcessLISTResp(), POP3Transport_CallbackProcessNOOPResp(), POP3Transport_CallbackProcessPASSResp(), POP3Transport_CallbackProcessQUITResponse(), POP3Transport_CallbackProcessRETRResp(), POP3Transport_CallbackProcessRSETResp(), POP3Transport_CallbackProcessSTATResp(), POP3Transport_CallbackProcessTOPResp(), POP3Transport_CallbackProcessUIDLResp(), POP3Transport_CallbackProcessUSERResp(), POP3Transport_Connect(), POP3Transport_ParseResponse(), POP3TransportCF_CreateInstance(), CMenuFocusManager::PopMenuBar(), CMenuFocusManager::PopMenuPopup(), CMenuFocusManager::PopTrackedPopup(), CAddressEditBox::PopulateComboBox(), CMenuDeskBar::Popup(), CMenuToolbarBase::PopupItem(), PPB_Load(), preprocess_shader(), Preview_pLoadImage(), PrintDlgExA(), PrintDlgExW(), process_component(), process_component_dependencies(), process_get_owner(), process_group(), process_inf(), process_pattern_string(), process_section(), process_vertices_strided(), CSysTray::ProcessIconMessage(), CSysTray::ProcessWindowMessage(), profile_items_callback(), PropertStorage_WriteWStringToStream(), property_GetIDsOfNames(), property_Invoke(), propertyset_get_Count(), propertyset_GetIDsOfNames(), propertyset_Invoke(), propertyset_Item(), PropertyStorage_BaseConstruct(), PropertyStorage_ConstructEmpty(), PropertyStorage_ConstructFromStream(), PropertyStorage_CreateDictionaries(), PropertyStorage_FindPropertyByName(), PropertyStorage_PropVariantCopy(), PropertyStorage_ReadDictionary(), PropertyStorage_ReadFmtIdOffsetFromStream(), PropertyStorage_ReadFromStream(), PropertyStorage_ReadHeaderFromStream(), PropertyStorage_ReadProperty(), PropertyStorage_ReadSectionHeaderFromStream(), PropertyStorage_StoreNameWithId(), PropertyStorage_StorePropWithId(), PropertyStorage_StringCopy(), PropertyStorage_WriteDictionaryToStream(), PropertyStorage_WriteHeadersToStream(), PropertyStorage_WritePropertyToStream(), PropertyStorage_WriteToStream(), PropertyStore_GetAt(), PropertyStore_GetState(), PropertyStore_GetValue(), PropertyStore_GetValueAndState(), PropertyStore_SetState(), PropertyStore_SetValue(), PropertyStore_SetValueAndState(), PropStgNameToFmtId(), propvar_changetype(), PropVariantChangeType(), PropVariantClear(), PropVariantCompareEx(), PropVariantCopy(), PropVariantToBoolean(), PropVariantToBSTR(), PropVariantToBuffer(), PropVariantToDouble(), PropVariantToInt16(), PropVariantToInt32(), PropVariantToInt64(), PropVariantToString(), PropVariantToStringAlloc(), PropVariantToUInt16(), PropVariantToUInt32(), PropVariantToUInt32WithDefault(), PropVariantToUInt64(), PropVariantToVariant(), ProvideMultipleClassInfo_GetClassInfo(), ProvideMultipleClassInfo_GetInfoOfIndex(), Proxy_DisconnectObject(), proxy_manager_construct(), proxy_manager_create_ifproxy(), proxy_manager_find_ifproxy(), proxy_manager_get_remunknown(), proxy_manager_query_local_interface(), Proxy_MarshalInterface(), Proxy_ReleaseMarshalData(), Proxy_UnmarshalInterface(), CMruPidlList::PruneKids(), ps_1_4_header(), ps_1_x_header(), ps_2_header(), PSCreatePropertyStoreFromObject(), PSFactoryBuffer_CreateStub(), PullPin_Disconnect(), PullPin_EndOfStream(), PullPin_InitProcessing(), PullPin_ReceiveConnection(), PullPin_Thread_Process(), CDocumentMgr::Push(), CMenuFocusManager::PushMenuBar(), CMenuFocusManager::PushMenuPopup(), CMenuFocusManager::PushTrackedPopup(), CShellBrowser::put_AddressBar(), CBDAFrequencyFilter::put_Bandwidth(), anonymous_namespace{mstscax.cpp}::CoClass::put_BinaryPassword(), anonymous_namespace{mstscax.cpp}::CoClass::put_BinarySalt(), anonymous_namespace{mstscax.cpp}::CoClass::put_ClearTextPassword(), anonymous_namespace{mstscax.cpp}::CoClass::put_ColorDepth(), anonymous_namespace{mstscax.cpp}::CoClass::put_ConnectedStatusText(), anonymous_namespace{mstscax.cpp}::CoClass::put_ConnectingText(), anonymous_namespace{mstscax.cpp}::CoClass::put_DesktopHeight(), anonymous_namespace{mstscax.cpp}::CoClass::put_DesktopWidth(), anonymous_namespace{mstscax.cpp}::CoClass::put_DisconnectedText(), anonymous_namespace{mstscax.cpp}::CoClass::put_Domain(), CBDAFrequencyFilter::put_Frequency(), CBDAFrequencyFilter::put_FrequencyMultiplier(), anonymous_namespace{mstscax.cpp}::CoClass::put_FullScreen(), anonymous_namespace{mstscax.cpp}::CoClass::put_FullScreenTitle(), CBDALNBInfo::put_HighLowSwitchFrequency(), CBDADigitalDemodulator::put_InnerFECMethod(), CBDADigitalDemodulator::put_InnerFECRate(), CBDALNBInfo::put_LocalOscillatorFrequencyHighBand(), CBDALNBInfo::put_LocalOscillatorFrequencyLowBand(), CShellBrowser::put_MenuBar(), CBDADigitalDemodulator::put_ModulationType(), CBDADigitalDemodulator::put_OuterFECMethod(), CBDADigitalDemodulator::put_OuterFECRate(), CBDAFrequencyFilter::put_Polarity(), anonymous_namespace{mstscax.cpp}::CoClass::put_PortablePassword(), anonymous_namespace{mstscax.cpp}::CoClass::put_PortableSalt(), put_propval(), CBDAFrequencyFilter::put_Range(), CBDASignalStatistics::put_SampleTime(), anonymous_namespace{mstscax.cpp}::CoClass::put_Server(), CBDADigitalDemodulator::put_SpectralInversion(), anonymous_namespace{mstscax.cpp}::CoClass::put_StartConnected(), CShellBrowser::put_StatusBar(), CBDADigitalDemodulator::put_SymbolRate(), CScanningTunner::put_TuneRequest(), anonymous_namespace{mstscax.cpp}::CoClass::put_UserName(), QCAP_createAudioCaptureFilter(), QCAP_createAVIMux(), QCAP_createSmartTeeFilter(), QCAP_createVFWCaptureFilter(), qualifier_set_GetNames(), QualityControlImpl_Notify(), QualityControlRender_DoQOS(), QUARTZ_DllRegisterServer(), query_init(), query_prop(), query_typelib_path(), QueryActiveShellView(), CMenuSite::QueryBand(), CQuickLaunchBand::QueryContextMenu(), CBandSiteMenu::QueryContextMenu(), CDefaultContextMenu::QueryContextMenu(), CDefViewBckgrndMenu::QueryContextMenu(), CTrayWindow::QueryContextMenu(), anonymous_namespace{mstscax.cpp}::CoClass::QueryGetData(), IDataObjectImpl::QueryGetData(), CMruBase::QueryInfo(), CInputPin::QueryInterface(), COutputPin::QueryInterface(), CKsProxy::QueryInterface(), CNetworkProvider::QueryInterface(), anonymous_namespace{mstscax.cpp}::CConnectionPointContainer::QueryInterface(), anonymous_namespace{mstscax.cpp}::CEnumConnectionPoints::QueryInterface(), anonymous_namespace{mstscax.cpp}::CConnectionPoint::QueryInterface(), anonymous_namespace{mstscax.cpp}::CEnumConnections::QueryInterface(), anonymous_namespace{mstscax.cpp}::CAdvancedSettings::QueryInterface(), anonymous_namespace{mstscax.cpp}::CoClass::queryInterface(), anonymous_namespace{mstscax.cpp}::ClassFactory::QueryInterface(), CMruPidlList::QueryPidl(), COutputPin::QueryPreferredFormat(), CKsProxy::QueryPreferredFormat(), CMenuDeskBar::QueryService(), CQuickLaunchBand::QueryStatus(), CShellBrowser::QueryStatusWB(), queue_sample(), r_verify_pidl(), anonymous_namespace{mstscax.cpp}::CoClass::ReactivateAndUndo(), CMemPropertyBag::Read(), CRegPropertyBag::Read(), CIniPropertyBag::Read(), CDesktopUpgradePropertyBag::Read(), CViewStatePropertyBag::Read(), Read(), read_clipformat(), ShellDirectory::read_directory(), read_from_stream(), read_hlink_string(), read_metadata_info(), read_png_chunk(), read_property_names(), ReadAndDumpString(), ReadBlock(), ReadByte(), ReadDWORD(), reader_add_attr(), reader_more(), reader_parse_attribute(), reader_parse_attvalue(), reader_parse_dtd(), reader_parse_element(), reader_parse_encdecl(), reader_parse_endtag(), reader_parse_externalid(), reader_parse_misc(), reader_parse_nextnode(), reader_parse_pi(), reader_parse_pitarget(), reader_parse_qname(), reader_parse_reference(), reader_parse_sddecl(), reader_parse_stag(), reader_parse_versioninfo(), reader_parse_xmldecl(), reader_push_element(), reader_push_ns(), readerinput_detectencoding(), readerinput_growraw(), readerinput_query_for_stream(), readerinput_switchencoding(), ReadIcoDib(), ReadIcoPng(), CCleanupHandler::ReadProperty(), ReallyFixupVTable(), CInputPin::ReceiveConnection(), Record_FieldCountGet(), Record_IntegerDataGet(), record_invoke(), record_set_value(), RECORD_StreamFromFile(), Record_StringDataGet(), RecycleBin5_Constructor(), RecycleBin5_Create(), RecycleBin5Enum_Constructor(), RecycleBin5File_Constructor(), reduce_moniker(), ReferenceClock_GetTime(), CAddressEditBox::RefreshAddress(), reg_create_key(), reg_enum_key(), reg_enum_values(), reg_get_stringvalue(), reg_unreg_wine_test_class(), RegFolderContextMenuCallback(), RegInstallA(), RegInstallW(), register_avicap_devices(), register_class_object_thread(), register_codec(), register_current_module_typelib(), register_dsound_devices(), register_filters(), register_legacy_filters(), register_midiout_devices(), register_ocxs_callback(), register_ps_clsid_thread(), register_vfw_codecs(), register_wavein_devices(), register_waveout_devices(), CCategoryMgr::RegisterCategory(), RegisterComCat(), RegisterComponent(), RegisterDefaultAcceptHeaders(), CNetworkProvider::RegisterDeviceFilter(), RegisterDragDrop(), RegisterOCX(), registerset_clear(), registerset_compare(), RegistryPropertyBag_Constructor(), RegistryPropertyBag_IPropertyBag_Read(), RegRestoreAllA(), RegSaveRestoreA(), RegSaveRestoreOnINFA(), release_avisplitter(), release_dsound_renderer(), release_font(), release_video_renderer(), CAutoComplete::ReLoadInnerList(), CBaseBarSite::RemoveBand(), RemoveDatablock(), RemoveDatablockCommand(), removeFromTree(), CMruNode::RemoveLeast(), RemUnknown_RemAddRef(), RemUnknown_RemQueryInterface(), RemUnknown_RemRelease(), CNetConnection::Rename(), render_embed_source_hack(), render_format(), RendererPosPassThru_EOS(), request_get_property(), request_send(), requestcf_CreateInstance(), anonymous_namespace{mstscax.cpp}::CoClass::RequestClose(), CContext::RequestEditSession(), anonymous_namespace{mstscax.cpp}::ClassFactory::RequestLicKey(), FxIrp::RequestPowerIrp(), CACListISF::Reset(), anonymous_namespace{mstscax.cpp}::CEnumConnectionPoints::Reset(), anonymous_namespace{mstscax.cpp}::CEnumConnections::Reset(), ResetDefViewFolderSettings(), ResetGlobalFolderSettings(), anonymous_namespace{mstscax.cpp}::CoClass::ResetPassword(), anonymous_namespace{mstscax.cpp}::CoClass::ResizeBorder(), CQuickLaunchBand::ResizeBorderDW(), CShellLink::Resolve(), CNtObjectFolder::ResolveSymLink(), response_BinaryWrite(), RestoreFileFromRecycleBin(), retrieve_device_state(), return_multi_qi(), CQueryAssociations::ReturnString(), revoke_class_object_thread(), RevokeDragDrop(), Rfc1766ToLcidW(), RichEditWndProc_common(), rot_entry_delete(), RPC_RegisterInterface(), RpcStream_Read(), RpcStubBuffer_Invoke(), RSHELL_CStartMenu_CreateInstance(), ATL::CAtlExeModuleT< T >::Run(), CKsClockForwarder::Run(), CKsProxy::Run(), run_script(), run_setup_commands_callback(), run_test_(), RunIndirectRegCommand(), RunningObjectTableImpl_EnumRunning(), RunningObjectTableImpl_GetObject(), RunningObjectTableImpl_GetTimeOfLastChange(), RunningObjectTableImpl_IsRunning(), RunningObjectTableImpl_NoteChangeTime(), RunningObjectTableImpl_Register(), RunSetupCommandA(), RunSetupCommandW(), RuntimeHost_CreateManagedInstance(), RuntimeHost_GetInterface(), RuntimeHost_GetIUnknownForDomain(), s_ip_test(), SAFEARRAY_CopyData(), SAFEARRAY_GetUnionType(), SafeArrayAccessData(), SafeArrayAllocDescriptor(), SafeArrayDestroyData(), SafeArrayRedim(), SafeCopyString(), SafeGetUnicodeString(), SampleGrabber_create(), SampleGrabber_IMemInputPin_Receive(), SampleGrabber_Out_IPin_Connect(), CGlobalFolderSettings::Save(), CQuickLaunchBand::Save(), anonymous_namespace{mstscax.cpp}::CoClass::Save(), Save(), CShellLink::Save(), save_dds_surface_to_memory(), save_dds_texture_to_memory(), save_dib(), save_emf(), save_mfpict(), save_view_cache(), anonymous_namespace{mstscax.cpp}::CoClass::SaveCompleted(), SaveDIBToFile(), CShellBrowser::SaveITBarLayout(), SaveRdpSettingsToFile(), SaveSettings(), CDefView::SaveViewState(), SAXAttributes_getValueFromName(), SAXAttributes_getValueFromQName(), SAXContentHandler_startElement(), SAXErrorHandler_error(), SAXErrorHandler_fatalError(), SAXErrorHandler_ignorableWarning(), CCleanupHandlerList::ScanDrive(), ScreenSaverConfig(), ScreenSaverPreview(), ScriptCacheGetHeight(), ScriptGetCMap(), ScriptGetFontFeatureTags(), ScriptGetFontLanguageTags(), ScriptGetFontProperties(), ScriptGetFontScriptTags(), ScriptGetGlyphABCWidth(), ScriptPlace(), ScriptPlaceOpenType(), ScriptShape(), ScriptShapeOpenType(), ScriptStringAnalyse(), ScriptStringOut(), ScriptTextOut(), SdbGetAppPatchDir(), SdbGUIDToString(), SdbPackAppCompatData(), SearchScreenSavers(), security_enum_zones(), security_get_sd(), security_GetIDsOfNames(), security_Invoke(), security_on_initdialog(), security_set_sd(), SeekOuter_QueryInterface(), SeiBuildShimRefArray(), SeiDbgPrint(), select_frame_gif(), CNewMenu::SelectNewItem(), SendFilterMessage(), SendFurther(), anonymous_namespace{mstscax.cpp}::CoClass::SendOnVirtualChannel(), service_pause_service(), service_resume_service(), service_start_service(), service_stop_service(), services_ExecQuery(), services_Get(), services_GetIDsOfNames(), services_InstancesOf(), services_Invoke(), CShellDispatch::ServiceStart(), CShellDispatch::ServiceStop(), Session_Database(), Session_DoAction(), Session_EvaluateCondition(), Session_FeatureCurrentState(), Session_FeatureRequestStateGet(), Session_Installer(), session_invoke(), Session_LanguageGet(), Session_Message(), Session_ModeGet(), Session_PropertyGet(), CInputPin::Set(), COutputPin::Set(), CKsProxy::Set(), set_action_map_callback(), set_admin_property_stream(), set_clipboard_formats(), set_constants(), set_driver_prop_value(), set_editor_undo_state(), set_execute_data(), set_firewall(), set_format(), set_safety_opt(), set_src_dataobject(), set_value(), set_xhr_site(), CShellLink::SetAdvertiseInfo(), CShellBrowser::SetAsDefFolderSettings(), CMenuDeskBar::SetClient(), anonymous_namespace{mstscax.cpp}::CoClass::SetClientSite(), CKsClockForwarder::SetClockState(), anonymous_namespace{mstscax.cpp}::CoClass::SetColorScheme(), SetCompartmentDWORD(), SetCompartmentUnknown(), SetConvertStg(), SetCurPin(), anonymous_namespace{mstscax.cpp}::CoClass::SetData(), CInputProcessorProfiles::SetDefaultLanguageProfile(), CMenuSite::SetDeskBarSite(), CScanningTunner::SetDigitalDemodulator(), CDrivesFolder::SetDriveLabel(), anonymous_namespace{mstscax.cpp}::CoClass::SetExtent(), CScanningTunner::SetFrequency(), SetGlobalCompartmentDWORD(), anonymous_namespace{mstscax.cpp}::CoClass::SetHostNames(), CShellLink::SetIconLocation(), CMenuDeskBar::SetIconSize(), CISFBand::SetImageListIconSize(), CScanningTunner::SetLnbInfo(), CACListISF::SetLocation(), CMenuBand::SetMenu(), anonymous_namespace{mstscax.cpp}::CoClass::SetMoniker(), CFindFolder::SetNameOf(), CNetworkConnections::SetNameOf(), CDesktopFolder::SetNameOf(), CDrivesFolder::SetNameOf(), CFSFolder::SetNameOf(), CMyDocsFolder::SetNameOf(), CRegFolder::SetNameOf(), anonymous_namespace{mstscax.cpp}::CoClass::SetObjectRects(), CShellLink::SetPath(), setperusersecvalues_test(), CKsProxy::SetPinState(), COutputPin::SetPositions(), CKsProxy::SetPositions(), COutputPin::SetRate(), SetScreenSaverPreviewBox(), CContext::SetSelection(), CMenuBand::SetShellFolder(), CQuickLaunchBand::SetSite(), CISFBand::SetSite(), CAddressBand::SetSite(), CSearchBar::SetSite(), CShellFolderViewCBWrapper::SetSite(), CMenuBand::SetSite(), CKsProxy::SetSyncSource(), CShellLink::SetTargetFromPIDLOrPath(), COutputPin::SetTimeFormat(), CKsProxy::SetTimeFormat(), setup_device9(), setup_richedit_olecallback(), setup_sink(), SetupRegisterAllClasses(), anonymous_namespace{mstscax.cpp}::CoClass::SetVirtualChannelOptions(), RegistrySettings::SetWallpaper(), SetWindowTheme(), SH32_GetDetailsOfPKeyAsVariant(), SH32_InvokeOpenWith(), SHAddToRecentDocs(), shader_get_registers_used(), shader_glsl_generate_shader_phase(), shader_init(), shader_set_function(), SHAPE_GetFontFeatureTags(), SHAPE_GetFontLanguageTags(), SHAPE_GetFontScriptTags(), shape_para(), shape_run(), SHAutoComplete(), SHBindToFolder(), SHBindToObjectEx(), SHBindToParent(), SHChangeNotify(), SHCoInitializeAnyApartment(), SHCreateDefaultContextMenu(), SHCreateDesktop(), SHCreateFileExtractIconW(), SHCreateFromDesktop(), SHCreatePropertyBagOnProfileSection(), SHCreatePropertyBagOnRegKey(), SHCreateSessionKey(), SHCreateShellFolderViewEx(), SHCreateShellItem(), SHDEI(), SHDesktopMessageLoop(), SHDOCVW_CreateShortcut(), SHDOCVW_DllGetClassObject(), SHDOCVW_GetCurrentLocationFromView(), SHDOCVW_GetPathOfShortcut(), SHDOCVW_GetShellInstanceObjectClassObject(), SHELL32_AssocGetExtensionDescription(), SHELL32_BindToSF(), SHELL32_CoCreateInitSF(), SHELL32_CompareChildren(), SHELL32_ControlService(), SHELL32_FileOperation(), SHELL32_GetDisplayNameOfChild(), SHELL32_GetFSItemAttributes(), SHELL32_ParseNextElement(), SHELL32_PropertySheet(), SHELL32_ShowFilesystemItemPropertiesDialogAsync(), SHELL_CloneDataObject(), SHELL_CompareAbsoluteIDs(), SHELL_CreateAbsolutePidl(), SHELL_CreatePropSheetStubWindow(), SHELL_CreateSHDESCRIPTIONID(), SHELL_CreateShell32DefaultExtractIcon(), SHELL_DisplayNameOf(), SHELL_execute(), SHELL_ExecuteW(), Shell_FailForceReturn(), SHELL_GetCaptionFromDataObject(), SHELL_GetComputerDescription(), SHELL_GetDetailsOfAsStringVariant(), SHELL_GetDetailsOfColumnAsVariant(), SHELL_GetDetailsOfToBuffer(), SHELL_GetIDListFromObject(), SHELL_GetIDListTarget(), SHELL_GetPathFromIDListForExecuteW(), SHELL_GetUIObjectOfAbsoluteItem(), SHELL_InitializeExtension(), SHELL_InitVariantFromBuffer(), SHELL_InvokePidl(), SHELL_IsVerb(), shell_item_exists(), SHELL_LimitDropEffectToItemAttributes(), SHELL_MapSCIDToColumn(), Shell_NextElement(), Shell_ParsePrinterName(), SHELL_PidlGetIconLocationW(), SHELL_RegisterShellFolders(), SHELL_ShowItemIDListProperties(), SHELL_SingleFileOperation(), ShellDimScreen(), shellex_get_contextmenu(), shellex_load_object_and_run(), ShellExecCmdLine(), ShellExecute_ContextMenuVerb(), ShellExecute_FromContextMenuHandlers(), ShellExecuteCommand(), ShellFolderContextMenu(), CDesktopFolder::ShellUrlParseDisplayName(), SHEmptyRecycleBinA(), SHEmptyRecycleBinW(), SHEnumClassesOfCategories(), SHFindComputer(), SHForwardContextMenuMsg(), SHGetAttributesFromDataObject(), SHGetComputerDisplayNameW(), SHGetFileInfoW(), SHGetFolderLocation(), SHGetFolderPathA(), SHGetFolderPathAndSubDirA(), SHGetFolderPathAndSubDirW(), SHGetFolderPathW(), SHGetNameAndFlagsW(), SHGetPathCchFromIDListW(), SHGetRealIDL(), SHGetShellStyleHInstance(), SHGetSpecialFolderLocation(), SHGetUserDisplayName(), SHGetViewStatePropertyBag(), SHGFI(), SHILAppend(), SHIMGVW_HResultFromWin32(), SHInvokeCommandOnContextMenuInternal(), SHInvokeCommandWithFlagsAndSite(), SHInvokePrivilegedFunctionW(), SHIsRemovableDrive(), SHLimitInputEdit(), SHLoadIndirectString(), SHLWAPI_DoesModuleVersionMatch(), SHLWAPI_GetModuleVersion(), SHLWAPI_IsBogusHRESULT(), SHOpenFolderAndSelectItems(), SHOpenNewFrame(), ShellPropSheetDialog::Show(), ShellPropSheetDialog::ShowAsync(), CMenuBand::ShowDW(), CQuickLaunchBand::ShowDW(), ShowNetConnectionProperties(), CNetConnectionPropertyUi::ShowNetworkComponentProperties(), ShowNetworkIconContextMenu(), CRecycleBinCleaner::ShowProperties(), SHParseDisplayName(), SHPropertyBag_OnIniFile(), SHPropertyBag_OnMemory(), SHPropertyBag_OnRegKey(), SHPropertyBag_ReadLONG(), SHPropertyBag_ReadTest(), SHPropertyBag_WriteTest(), SHQueryRecycleBinA(), SHQueryRecycleBinW(), SHRegisterDragDrop(), SHRunIndirectRegClientCommand(), SHSetUnreadMailCountW(), SHShouldShowWizards(), SHSimulateDropOnClsid(), SHStrDupW(), SHUnicodeToAnsiCP(), CSysTray::ShutdownIcons(), CSysTray::ShutdownNetShell(), anonymous_namespace{mstscax.cpp}::CEnumConnectionPoints::Skip(), anonymous_namespace{mstscax.cpp}::CEnumConnections::Skip(), CEnumRegRoot::Skip(), CEnumRegKey::Skip(), CEnumNTDirectory::Skip(), CEnumIDListBase::Skip(), SlWriteBytecode(), SmallBlockChainStream_GetHeadOfChain(), SmartTeeFilter_Run(), SmartTeeFilterCapture_EnumMediaTypes(), SmartTeeFilterInput_GetMediaType(), SmartTeeFilterPreview_EnumMediaTypes(), SMTPTransport_CallbackDisconnect(), SMTPTransport_CallbackMessageProcessResponse(), SMTPTransport_CallbackMessageSendDataStream(), SMTPTransport_CallbackMessageSendTo(), SMTPTransport_CallbackProcessDATAResponse(), SMTPTransport_CallbackProcessHelloResp(), SMTPTransport_CallbackProcessMAILResponse(), SMTPTransport_CallbackProcessRCPTResponse(), SMTPTransport_CallbackSendHello(), SMTPTransport_CommandAUTH(), SMTPTransport_CommandEHLO(), SMTPTransport_CommandHELO(), SMTPTransport_CommandMAIL(), SMTPTransport_CommandRCPT(), SMTPTransport_Connect(), SMTPTransport_SendMessage(), SMTPTransportCF_CreateInstance(), snapshot_EnumFormatEtc(), snapshot_GetData(), snapshot_GetDataHere(), source_mgr_fill_input_buffer(), SourceSeekingImpl_CheckCapabilities(), SourceSeekingImpl_IsUsingTimeFormat(), SourceSeekingImpl_SetRate(), SpecialFolderPath::SpecialFolderPath(), SS_ItemOut(), CProgressDlg::Start(), start_apartment_remote_unknown(), start_installation(), START_TEST(), CScanningTunner::StartChanges(), CBDADeviceControl::StartChanges(), StartCount(), startup(), stateblock_init(), statusclb_OnProgress(), StdGlobalInterfaceTable_RevokeInterfaceFromGlobal(), StdMarshalImpl_Construct(), StdMarshalImpl_ReleaseMarshalData(), StdMarshalImpl_UnmarshalInterface(), StdMediaSample2_GetTime(), StdMemAllocator_create(), CCommonFolder< TSelf, TItemId, TExtractIcon >::STDMETHOD_(), StgConvertPropertyToVariant(), StgCreateDocfileOnILockBytes(), StgOpenStorage(), StgOpenStorageOnILockBytes(), StgStreamImpl_CopyTo(), StgStreamImpl_Seek(), StgStreamImpl_SetSize(), StgStreamImpl_Stat(), StiCreateInstanceW(), stillimagew_RegisterLaunchApplication(), stillimagew_UnregisterLaunchApplication(), CKsProxy::Stop(), Storage_Construct(), STORAGE_CreateOleStream(), Storage_CreateStream(), Storage_OpenStream(), StorageBaseImpl_CopyChildEntryTo(), StorageBaseImpl_CopyStorageEntryTo(), StorageBaseImpl_CopyStorageTree(), StorageBaseImpl_CopyStream(), StorageBaseImpl_CreateStorage(), StorageBaseImpl_CreateStream(), StorageBaseImpl_DeleteStorageTree(), StorageBaseImpl_DestroyElement(), StorageBaseImpl_DupStorageTree(), StorageImpl_CheckLockRange(), StorageImpl_Construct(), StorageImpl_CreateDirEntry(), StorageImpl_Flush(), StorageImpl_GetFilename(), StorageImpl_GetTransactionSig(), StorageImpl_GrabLocks(), StorageImpl_LoadFileHeader(), StorageImpl_LockOne(), StorageImpl_LockRegionSync(), StorageImpl_LockTransaction(), StorageImpl_ReadBigBlock(), StorageImpl_ReadRawDirEntry(), StorageImpl_Refresh(), StorageImpl_SaveFileHeader(), StorageImpl_StreamLink(), StorageImpl_StreamReadAt(), StorageImpl_StreamSetSize(), StorageImpl_StreamWriteAt(), StorageImpl_UnlockTransaction(), STORAGES_set_row(), STORAGES_set_stream(), stream_chunk_get_wstr(), stream_get_chunk(), stream_getsize(), stream_info(), stream_initialize_from_filehandle(), Stream_LoadLocation(), Stream_LoadString(), stream_next_chunk(), stream_out_graphics(), stream_read(), Stream_ReadChunk(), stream_seek(), stream_to_storage(), Stream_WriteLocationInfo(), Stream_WriteString(), StreamOnMemory_Seek(), StreamOnMemory_Write(), StreamOnStreamRange_Read(), StreamOnStreamRange_Seek(), StreamOnStreamRange_Stat(), StreamOnStreamRange_Write(), STREAMS_delete_row(), STREAMS_fetch_stream(), STREAMS_set_row(), StringCatExWorkerA(), StringCatExWorkerW(), StringCatNExWorkerA(), StringCatNExWorkerW(), StringCatNWorkerA(), StringCatNWorkerW(), StringCatWorkerA(), StringCatWorkerW(), StringCbCatExA(), StringCbCatExW(), StringCbCatNExA(), StringCbCatNExW(), StringCbCopyExA(), StringCbCopyExW(), StringCbCopyNExA(), StringCbCopyNExW(), StringCbGetsA(), StringCbGetsExA(), StringCbGetsExW(), StringCbGetsW(), StringCbLengthA(), StringCbLengthW(), StringCbPrintfA(), StringCbPrintfExA(), StringCbPrintfExW(), StringCbPrintfW(), StringCbVPrintfExA(), StringCbVPrintfExW(), StringCchGetsA(), StringCchGetsExA(), StringCchGetsExW(), StringCchGetsW(), StringCchLengthA(), StringCchLengthW(), StringCchPrintfA(), StringCchPrintfExA(), StringCchPrintfExW(), StringCchPrintfW(), StringCchVPrintfExA(), StringCchVPrintfExW(), StringCopyExWorkerA(), StringCopyExWorkerW(), StringCopyNExWorkerA(), StringCopyNExWorkerW(), StringCopyNWorkerA(), StringCopyNWorkerW(), StringCopyWorkerA(), StringCopyWorkerW(), StringGetsExWorkerA(), StringGetsExWorkerW(), StringLengthWorkerA(), StringLengthWorkerW(), StringList__NewEnum(), StringList_Count(), StringList_Item(), StringVPrintfExWorkerA(), StringVPrintfExWorkerW(), StringVPrintfWorkerA(), StringVPrintfWorkerW(), StrNCatBuff(), StrRetToVariantBSTR(), stub_manager_new_ifstub(), sub_stream_CopyTo(), sub_stream_Read(), subtest_InsertObject(), subtest_undo(), subtest_undo_control(), summaryinfo_invoke(), SummaryInfo_PropertyCountGet(), surface_cpu_blt(), surface_lock(), swapchain_cleanup(), swapchain_init(), synth_port_create(), synthesize_bitmap(), synthesize_dib(), synthesize_emf(), SynthPortImpl_IDirectMusicPort_PlayBuffer(), SysKeyboardAImpl_BuildActionMap(), SysKeyboardAImpl_SetActionMap(), SysKeyboardWImpl_GetProperty(), SysMouseAImpl_BuildActionMap(), SysMouseAImpl_SetActionMap(), SystemClockAdviseThread(), SystemClockImpl_GetTime(), test_access(), test_AccessibleChildren(), test_AccessibleObjectFromWindow(), test_aclist_expand(), test_ACListISF(), test_ACListISF_CURRENTDIR(), test_ACListISF_CURRENTDIR2(), test_ACListISF_DESKTOP(), test_ACListISF_FAVORITES(), test_ACListISF_FILESYSDIRS(), test_ACListISF_FILESYSONLY(), test_ACListISF_MYCOMPUTER(), test_ACListISF_NONE(), test_ACLMulti(), test_acquire(), test_action_mapping(), test_Activate(), test_Add(), test_AdvInstallFile(), test_advise(), test_Advise(), test_advise_helper(), test_aggregate_filter_graph(), test_aggregate_filter_mapper(), test_aggregation(), test_Allocator(), test_animation(), test_animation_qi(), test_anti_moniker(), test_appendChild(), test_assembly_name_props_line(), test_assoc_create(), test_AssociateFocus(), test_associators(), TEST_AssocQueryStringA(), TEST_AssocQueryStringW(), test_at_end_imp(), test_AtlAxAttachControl(), test_AtlAxCreateControl(), test_attribute_by_name(), test_AttributesRegistration(), test_audioclient(), test_bad_marshal_stream(), test_basefilter(), test_basic_video(), test_basics(), test_bind_context(), test_BindToObject(), test_bitmap_scaler(), test_BodyDeleteProp(), test_bom(), test_box(), test_browse_pidl_(), test_browse_pidl_sb_(), test_buffered_paint(), test_build_action_map(), test_BuildPath(), test_call_from_message(), test_CallForAttributes(), test_Cancel(), test_capabilities(), test_capture(), test_cf_dataobject(), test_channel_hook(), test_ChannelBufferRefCount(), test_channelvolume(), test_character_endof(), test_character_move(), test_character_moveend(), test_character_movement(), test_character_movestart(), test_character_startof(), test_charset(), test_checklinkpath(), test_chunk_size(), test_class_moniker(), test_class_name_(), test_click_make_new_folder_button(), test_client_security(), test_ClientId(), test_clipboard(), test_clipper(), test_clock(), test_clone_mesh(), test_cloneNode(), TEST_CLSID_ShellWindows(), test_CLSIDFromProgID(), test_CLSIDFromString(), test_CoCreateGuid(), test_CoCreateInstance(), test_cocreateinstance_proxy(), test_CoCreateInstanceEx(), test_codec(), test_CodePageToScriptID(), test_CoFreeUnusedLibraries(), test_CoGetApartmentType(), test_CoGetCallContext(), test_CoGetClassObject(), test_CoGetContextToken(), test_CoGetCurrentLogicalThreadId(), test_CoGetInstanceFromFile(), test_CoGetInterfaceAndReleaseStream(), test_CoGetMalloc(), test_CoGetObjectContext(), test_CoGetPSClsid(), test_CoGetStandardMarshal(), test_CoInitializeEx(), test_CoInternetCombineIUri(), test_CoInternetCombineIUri_Pluggable(), test_CoInternetCombineUrlEx(), test_CoInternetCombineUrlEx_Pluggable(), test_CoInternetCreateZoneManager(), test_CoInternetParseIUri(), test_CoInternetParseIUri_InvalidArgs(), test_CoInternetParseIUri_Pluggable(), test_collection(), test_collection_content(), test_collection_refs(), test_color_contexts(), test_color_formats(), test_COM(), test_COM_dplobby(), test_COM_editstream(), test_COM_sg_enumpins(), test_COM_wavfile(), test_CoMarshalInterface(), test_CoMarshalInterThreadInterfaceInStream(), Test_CompareIDs(), test_comparemode(), test_Compartments(), test_complex_get_clipboard(), test_component_enumerator(), test_componentinfo(), test_compute_normals(), test_consumer_refs(), test_container_properties(), test_contextmenu(), test_contextmenu_qi(), test_conversion(), test_convert(), test_convert_adjacency_to_point_reps(), test_convert_point_reps_to_adjacency(), test_converter_4bppGray(), test_converter_8bppGray(), test_converter_8bppIndexed(), test_ConvertINetUnicodeToMultiByte(), test_copy(), test_copyassignment(), test_CopyFile2(), test_CopyFolder(), test_copyto(), test_copyto_iidexclusions_storage(), test_copyto_iidexclusions_stream(), test_copyto_snbexclusions(), test_CoRegisterClassObject(), test_CoRegisterMessageFilter(), test_CoRegisterPSClsid(), test_CoUnmarshalInterface(), test_CoWaitForMultipleHandles(), test_CoWaitForMultipleHandles_thread(), test_create(), test_create_attribute(), test_create_blob(), test_create_decoder(), test_create_device_1(), test_create_device_2(), test_create_device_3(), test_create_device_from_clipper1(), test_create_device_from_clipper2(), test_create_device_from_clipper3(), test_create_device_from_d3d1(), test_create_device_from_d3d2(), test_create_device_from_d3d3(), test_create_device_from_surface1(), test_create_device_from_surface2(), test_create_device_from_surface3(), test_create_effect_and_pool(), test_create_effect_compiler(), test_create_effect_from_file(), test_create_line(), test_create_reader_from_container(), test_create_skin_info(), test_create_texture_from_surface(), test_create_typelib_lcid(), test_CreateAssemblyCache(), test_CreateAssemblyCacheItem(), test_CreateAssemblyEnum(), test_CreateAssemblyNameObject(), test_createbitmap(), test_CreateBitmapFromHBITMAP(), test_CreateBitmapFromHICON(), test_CreateBitmapFromMemory(), test_createbitmapfromsource(), test_CreateBody(), test_createconfigstream(), test_createDebugger(), test_CreateDevice(), test_CreateDispTypeInfo(), test_createElement(), test_createfolder(), test_createfromstream(), test_CreateGroup(), test_CreateIUriBuilder(), test_CreateMessage(), test_CreateMetadataReader(), test_CreateMetadataWriter(), test_CreateMetadataWriterFromReader(), test_createNode(), test_CreatePlayer(), test_createProcessingInstruction(), test_CreateSecurity(), test_CreateStdDispatch(), test_createtext(), test_CreateTextFile(), test_CreateUri_InvalidArgs(), test_CreateUri_InvalidFlags(), test_CreateUri_InvalidUri(), test_CreateUriWithFragment(), test_CreateUriWithFragment_InvalidArgs(), test_CreateUriWithFragment_InvalidFlags(), test_CreateURLMoniker(), test_CreateViewWindow(), test_CreateVirtualStream(), test_CreateZoneEnumerator(), test_cross_effect_handle(), test_custom_lockbytes(), test_custom_palette(), test_custom_source(), test_customize(), test_cylinder(), test_D3DReadFileToBlob(), test_d3drm_load(), test_d3drm_qi(), test_D3DXCheckCubeTextureRequirements(), test_D3DXCheckTextureRequirements(), test_D3DXCheckVolumeTextureRequirements(), test_D3DXCreateCubeTextureFromFileInMemory(), test_D3DXCreateCubeTextureFromFileInMemoryEx(), test_D3DXCreateRenderToEnvMap(), test_D3DXCreateRenderToSurface(), test_D3DXCreateTexture(), test_D3DXCreateTextureFromFileInMemory(), test_D3DXCreateTextureFromFileInMemoryEx(), test_D3DXCreateVolumeTextureFromFileInMemory(), test_D3DXCreateVolumeTextureFromFileInMemoryEx(), test_D3DXFillCubeTexture(), test_D3DXFillTexture(), test_D3DXFillVolumeTexture(), test_D3DXFilterTexture(), test_D3DXGetImageInfo(), test_D3DXLoadSurface(), test_D3DXLoadVolumeFromFileInMemory(), test_D3DXLoadVolumeFromMemory(), test_D3DXSaveSurfaceToFile(), test_D3DXSaveSurfaceToFileInMemory(), test_D3DXSaveTextureToFileInMemory(), test_D3DXSHEvalConeLight(), test_D3DXSHEvalDirectionalLight(), test_D3DXSHEvalHemisphereLight(), test_D3DXSHEvalSphericalLight(), test_data_cache(), test_data_cache_cache(), test_data_cache_contents(), test_data_cache_dib_contents_stream(), test_data_cache_init(), test_data_cache_initnew(), test_data_cache_save(), test_data_cache_save_data(), test_data_cache_updatecache(), test_Database(), test_DataObject_FirstFile(), test_DataObject_FirstFolder(), test_dds_decoder(), test_dds_decoder_frame(), test_dds_decoder_frame_data(), test_dds_decoder_frame_properties(), test_dds_decoder_global_properties(), test_dds_decoder_image_parameters(), test_dds_encoder_create_frame(), test_dds_encoder_initialize(), test_dds_encoder_params(), test_dds_encoder_pixel_format(), test_dds_header_handling(), test_decl_to_fvf(), test_decode(), test_decode_1bpp(), test_decode_24bpp(), test_decode_4bpp(), test_decode_adobe_cmyk(), test_decode_bitfields(), test_decode_rle4(), test_decode_rle8(), test_decoder_info(), test_default_client_accessible_object(), test_default_converter(), test_default_handler(), test_default_properties(), test_defaultcharset(), test_defaultdatabase(), test_delegated_methods(), test_Delete(), test_dep(), test_desktop_displaynameof(), test_desktop_folder(), test_desktop_IPersist(), test_destroy_callback(), test_detached_font_getters(), test_DetectOutboundCodePageInIStream(), test_devenum(), test_Device(), test_device_input(), test_device_qi(), test_deviceinterface(), test_DfMarshal_custom_marshaling(), Test_DIBSectionEntry(), test_dik_codes(), Test_Dim(), test_direct_swmr(), test_DirectInput8Create(), test_DirectInputCreateEx(), test_DirectInputJoyConfig8(), test_DirectPlayCreate(), test_directshow_filter(), test_Disable(), test_disconnect_stub(), test_dispatch(), test_dispatch_typeinfo(), test_DispCallFunc(), test_dispex(), test_DispGetParam(), test_DllGetVersion(), test_dmo(), test_DocumentMgrAdviseSinks(), test_DocumentMgrUnadviseSinks(), test_DoDragDrop(), test_domdoc(), test_domnode(), test_domobj_dispex(), test_dot_parsing(), test_dragdrophelper(), test_DriveCollection(), test_DriveExists(), test_dsound(), test_dump_typelib(), test_DxDiag_DisplayDevices(), test_DxDiag_SoundCaptureDevices(), test_DxDiag_SoundDevices(), test_DxDiag_SystemInfo(), test_effect_clear_vconsts(), test_effect_clone(), test_effect_commitchanges(), test_effect_compilation_errors(), test_effect_find_next_valid_technique(), test_effect_get_pass_desc(), test_effect_isparameterused(), test_effect_large_address_aware_flag(), test_effect_null_shader(), test_effect_out_of_bounds_selector(), test_effect_parameter_block(), test_effect_parameter_value(), test_effect_parameter_value_GetBool(), test_effect_parameter_value_GetBoolArray(), test_effect_parameter_value_GetFloat(), test_effect_parameter_value_GetFloatArray(), test_effect_parameter_value_GetInt(), test_effect_parameter_value_GetIntArray(), test_effect_parameter_value_GetMatrix(), test_effect_parameter_value_GetMatrixArray(), test_effect_parameter_value_GetMatrixPointerArray(), test_effect_parameter_value_GetMatrixTranspose(), test_effect_parameter_value_GetMatrixTransposeArray(), test_effect_parameter_value_GetMatrixTransposePointerArray(), test_effect_parameter_value_GetValue(), test_effect_parameter_value_GetVector(), test_effect_parameter_value_GetVectorArray(), test_effect_parameter_value_ResetValue(), test_effect_preshader(), test_effect_preshader_clear_pbool_consts(), test_effect_preshader_compare_pbool_consts_(), test_effect_preshader_compare_shader_(), test_effect_preshader_compare_vconsts_(), test_effect_preshader_op_results_(), test_effect_preshader_ops(), test_effect_preshader_relative_addressing(), test_effect_setvalue_object(), test_effect_shared_parameters(), test_effect_shared_parameters_compare_vconst_(), test_effect_shared_vs_arr_compare_helper_(), test_effect_skip_constants(), test_effect_state_manager(), test_effect_states(), test_effect_unsupported_shader(), test_effect_variable_names(), test_EM_SELECTIONTYPE(), test_empty_propertybag(), test_Enable(), test_encoder(), test_encoder_formats(), test_encoder_properties(), test_encoding_detection(), test_endoffile(), test_endpointvolume(), test_endSession(), test_Enum(), test_enum_feedback(), test_enum_fmtetc(), test_EnumAddressTypes(), test_EnumChildContainerNames(), test_EnumConnections(), test_EnumContexts(), test_EnumDevices(), test_EnumDevicesBySemantics(), test_EnumDirFiles(), test_EnumDocumentMgr(), test_enumerate(), test_enumerate_name(), test_EnumerateProviders(), test_EnumGroups(), test_EnumGroupsInGroup(), test_EnumLanguageProfiles(), test_EnumObjects(), test_EnumObjects_and_CompareIDs(), test_EnumObjects_Files(), test_EnumObjects_Folders(), test_EnumPlayers(), test_EnumPropNames(), test_enumruntimes(), test_EnumSessions(), test_eof_state(), test_error_info(), test_event(), test_events(), test_Exists(), test_Expand(), test_ExpectFolders_imp(), Test_Exporter(), test_ExtractFiles(), test_Face(), test_fail(), test_file_all_name_information(), test_file_moniker(), test_file_name_information(), test_FileCollection(), test_FileContents1(), test_FileContents2(), test_FileMapping(), test_filename(), test_filename_opendlg_(), test_filename_savedlg_(), test_filesourcefilter(), test_filled_propertybag(), test_filter_graph(), test_find_shader_comment(), test_FindClosestCategory(), test_FindName(), test_first_device(), test_flush(), test_flushed_getdata(), test_fm2_enummatchingfilters(), test_fmtusertypestg(), test_FolderCollection(), test_FolderShortcut(), test_font_events_disp(), test_formats(), test_FormattingXML(), test_fragment_linker(), test_Frame(), test_frame_mesh_materials(), test_frame_qi(), test_frame_transform(), test_freed_hglobal(), test_freethreadedmarshaldata(), test_freethreadedmarshaler(), test_freeze(), test_fvf_to_decl(), test_GdipLoadImageFromStream(), test_generic_composite_moniker(), test_get_attributes(), test_get_blob_part(), test_get_blob_part2(), test_get_childNodes(), test_get_clipboard(), test_get_clipboard_locked(), test_get_clipboard_uninitialized(), test_get_dataType(), test_get_doctype(), test_get_file_info_iconlist(), test_get_firstChild(), test_get_lastChild(), test_get_namespaces(), test_get_nodeTypeString(), test_get_ownerDocument(), test_get_prefix(), test_get_prop(), test_get_shader_constant_table_ex(), test_get_shader_constant_variables(), test_get_shader_samplers(), test_get_tagName(), test_get_text(), test_get_xml(), test_GetAbsolutePathName(), test_GetAcceptLanguagesA(), test_GetAltMonthNames(), test_getat(), test_getAttribute(), test_getAttributeNode(), test_GetAttributesOf(), test_GetBaseName(), test_GetCachePath(), test_GetCaps(), test_GetCharsetInfo_other(), test_GetChildContainer(), test_GetCurrentProcessExplicitAppUserModelID(), test_GetCurrentView(), test_getdatahere(), test_GetDataHere_Proxy(), test_GetDefaultColumn(), test_GetDefaultSearchGUID(), test_GetDeviceInfo(), test_GetDeviceStatus(), test_GetDisplayName(), Test_GetDisplayNameOf(), test_GetDrive(), test_GetDriveName(), test_getElementsByTagName(), test_GetExtensionName(), test_GetFile(), test_GetFileName(), test_GetFileVersion(), test_GetFolder(), test_GetFont(), test_GetFontUnicodeRanges(), test_GetItemObject(), test_GetLcidFromRfc1766(), test_GetLibAttr(), test_GetMessageCount(), test_GetMessageQueue(), test_GetNames(), test_GetNumberOfChildContainers(), test_GetNumberOfCodePageInfo(), test_GetNumberOfProps(), test_GetPara(), test_GetParentFolderName(), test_GetPlayerAccount(), test_GetPlayerAddress(), test_GetPlayerCaps(), test_GetPlayerFlags(), test_GetProp(), test_getQualifiedItem(), test_GetRfc1766FromLcid(), test_GetRootContainer(), test_getruntime(), test_GetScriptFontInfo(), test_GetSetCurrentViewMode(), test_GetSpecialFolder(), test_GetStoryLength(), test_GetStoryType(), test_getstring_bad(), test_getstring_basic(), test_getstring_no_extra(), test_GetUIObject(), test_GetZoneAt(), test_GetZoneAttributes(), test_gif_frame_sizes(), test_gif_notrailer(), test_global_gif_palette(), test_global_gif_palette_2frames(), test_globalinterfacetable(), test_graph_builder(), test_graph_builder_connect(), test_GroupOwner(), test_groups_cs(), test_groups_p2p(), test_handler_marshaling(), test_hash_value(), test_hfont_lifetime(), test_himetric(), test_HlinkUpdateStackItem(), test_host_migration(), test_hresult_marshaling(), test_HttpOptions(), test_hw_buffers(), test_IACLCustomMRU_Basics(), test_IACLCustomMRU_Continue(), test_IACLCustomMRU_ExtraChars(), test_IACLCustomMRU_TypedURLs(), test_IACLCustomMRU_UpdateOrder(), test_IApplicationAssociationRegistration_QueryCurrentDefault(), test_IApplicationAssociationRegistration_QueryInterface(), test_IAssemblyName_IsEqual(), Test_IClassFactory_CreateInstance(), test_IClientSecurity(), test_ico_data_(), test_iconlocation(), test_ID3DXBuffer(), test_ID3DXFont(), test_ID3DXRenderToEnvMap(), test_ID3DXRenderToEnvMap_cube_map(), test_ID3DXRenderToSurface(), test_ID3DXRenderToSurface_device_state(), test_ID3DXSprite(), test_IDirectDrawStreamSample(), test_IEnumVARIANT(), test_iface_ptr(), test_ifd_content(), test_ifiltermapper_from_filtergraph(), test_IFolderView(), test_IIDFromString(), test_iimagelist(), test_IImageList_Add_Remove(), test_IImageList_Clone(), test_IImageList_Draw(), test_IImageList_Get_SetImageCount(), test_IImageList_GetBkColor(), test_IImageList_GetIconSize(), test_IImageList_GetImageCount(), test_IImageList_Merge(), test_IImageList_SetBkColor(), test_IInitializeSpy(), test_IInitializeSpy_fail(), test_IInitializeSpy_register2(), test_IInitializeSpy_switch_apt(), test_IInitializeSpy_twice(), test_imagingfactory_interfaces(), test_IMallocSpy(), test_IMILBitmap(), test_IMLangConvertCharset(), test_implicit_mta(), Test_Importer(), test_IMultiLanguage2_ConvertStringFromUnicode(), test_indent(), test_indentation(), test_inheritance(), test_init_spies_proc(), test_initialization(), test_Initialize(), test_InitializeConnection(), test_InitPropVariantFromCLSID(), test_InitPropVariantFromStringVector(), test_InitVariantFromFileTime(), test_inmemorystore(), test_inplace_active(), test_inproc_handler(), test_InputObject(), test_InRange(), test_InsertAtSelection(), test_insertBefore(), test_InsertObject(), test_InstallAssembly(), test_Installer(), test_Installer_InstallProduct(), test_Installer_Products(), test_Installer_RegistryValue(), test_instantiate_control(), test_instantiation(), test_intconversions(), test_interfaces(), test_InternetGetSecurityUrlEx(), test_InternetGetSecurityUrlEx_Pluggable(), test_interthread_marshal_and_unmarshal(), test_invalid_conversion(), test_invalid_init(), test_invalid_output_encoding(), test_invalid_parameters(), test_Invoke(), test_IObjectSafety(), test_IOleCommandTarget(), test_IOleWindow(), test_IPersistStream(), test_IProgressDialog_QueryInterface(), test_IQueryAssociations_GetString(), test_IQueryAssociations_Init(), test_IQueryAssociations_QueryInterface(), test_IReferenceClock_methods(), test_IReferenceClock_query_interface(), test_IReferenceClock_SystemClock(), test_IsCodePageInstallable(), test_isemptyelement(), test_IShellFolderView(), test_isparameterused_children(), test_IStream_Clone(), test_IsValidURL(), test_Item(), test_item_moniker(), test_ITEMIDLIST_format(), test_ITextFont(), test_ITextRange_IsEqual(), test_ITextRange_SetRange(), test_ITextSelection_GetDuplicate(), test_IUnknown_GetClassID(), test_IUnknown_ProfferService(), test_IUnknown_QueryServiceExec(), test_IUPnPNAT(), test_IUri_GetDwordProperties(), test_IUri_GetProperties(), test_IUri_GetPropertyBSTR(), test_IUri_GetPropertyDWORD(), test_IUri_GetPropertyLength(), test_IUri_GetStrProperties(), test_IUri_HasProperty(), test_IUriBuilder(), test_IUriBuilder_CreateInvalidArgs(), test_IUriBuilder_CreateUri(), test_IUriBuilder_CreateUriSimple(), test_IUriBuilder_CreateUriWithFlags(), test_IUriBuilder_GetFragment(), test_IUriBuilder_GetHost(), test_IUriBuilder_GetInvalidArgs(), test_IUriBuilder_GetPassword(), test_IUriBuilder_GetPath(), test_IUriBuilder_GetPort(), test_IUriBuilder_GetQuery(), test_IUriBuilder_GetSchemeName(), test_IUriBuilder_GetUserName(), test_IUriBuilder_HasBeenModified(), test_IUriBuilder_IUriProperty(), test_IUriBuilder_Misc(), test_IUriBuilder_RemoveProperties(), test_IUriBuilderFactory(), test_IWbemLocator(), test_IWbemPath_GetClassName(), test_IWbemPath_GetInfo(), test_IWbemPath_GetNamespaceAt(), test_IWbemPath_GetServer(), test_IWbemPath_GetText(), test_IWbemPath_RemoveAllNamespaces(), test_IWbemPath_RemoveNamespaceAt(), test_IWbemPath_SetClassName(), test_IWbemPath_SetNamespaceAt(), test_IWbemPath_SetServer(), test_IWbemPath_SetText(), test_IWinHttpRequest(), test_IWinHttpRequest_Invoke(), test_IXMLDOMDocument2(), test_JapaneseConversion(), test_Keys(), test_KeystrokeMgr(), test_knownFolders(), test_launch_app_registry(), test_LaunchINFSection(), test_LaunchINFSectionEx(), test_LcidToRfc1766(), test_legacy_filter(), test_legacy_filter_registration(), test_length(), test_libattr(), test_Light(), test_load(), test_load_save_bmp(), test_load_save_emf(), test_load_save_empty_picture(), test_load_save_icon(), test_load_skin_mesh_from_xof(), test_load_texture(), test_load_with_site(), test_LoadIconWithScaleDown(), test_loadlibraryshim(), test_LoadMeshFromX_(), test_LoadRegTypeLib(), test_local_gif_palette(), test_local_server(), test_LocalizedNames(), test_locator(), test_lock_object_external(), test_locking(), test_manualresetevent(), test_marshal(), test_marshal_and_unmarshal_invalid(), test_marshal_array(), test_marshal_basetypes(), test_marshal_bstr(), test_marshal_channel_buffer(), test_marshal_coclass(), test_marshal_dispinterface(), test_marshal_iface(), test_marshal_LPSAFEARRAY(), test_marshal_pointer(), test_marshal_proxy_apartment_shutdown(), test_marshal_proxy_mta_apartment_shutdown(), test_marshal_safearray(), test_marshal_struct(), test_marshal_stub_apartment_shutdown(), test_marshal_variant(), test_marshal_VARIANT(), test_Material2(), test_Matrix_Decompose(), test_matrix_stack(), test_max_element_depth(), test_max_element_depth_values(), test_media_event(), test_media_seeking(), test_media_streams(), test_mediadet(), test_merging_text(), test_Mesh(), test_MeshBuilder(), test_MeshBuilder3(), test_message_filter(), test_MessageGetPropInfo(), test_MessageOptions(), test_MessageSetProp(), test_metadata_APE(), test_metadata_App1(), test_metadata_cHRM(), test_metadata_Exif(), test_metadata_gAMA(), test_metadata_GCE(), test_metadata_gif(), test_metadata_GIF_comment(), test_metadata_Gps(), test_metadata_hIST(), test_metadata_Ifd(), test_metadata_IMD(), test_metadata_LSD(), test_metadata_png(), test_metadata_tEXt(), test_metadata_tIME(), test_metadata_unknown(), test_metadata_writer(), test_midiout(), test_MimeOleGetPropertySchema(), test_misc(), test_MkParseDisplayName(), test_moniker(), test_mouse_EnumObjects(), test_mouse_keyboard(), test_MoveEnd_story(), test_MsiGetFileSignatureInformation(), test_multi_encoder_impl(), test_MultipleFiles(), test_MultiThreadApartment_Thread(), test_multithreaded_clipboard(), test_mxattr_addAttribute(), test_mxattr_clear(), test_mxattr_dispex(), test_mxattr_localname(), test_mxattr_qi(), test_mxnamespacemanager(), test_mxnamespacemanager_override(), test_mxwriter_cdata(), test_mxwriter_characters(), test_mxwriter_comment(), test_mxwriter_default_properties(), test_mxwriter_dispex(), test_mxwriter_domdoc(), test_mxwriter_dtd(), test_mxwriter_encoding(), test_mxwriter_flush(), test_mxwriter_handlers(), test_mxwriter_ignorablespaces(), test_mxwriter_indent(), test_mxwriter_pi(), test_mxwriter_properties(), test_mxwriter_startenddocument(), test_mxwriter_startendelement(), test_mxwriter_startendelement_batch(), test_mxwriter_startendelement_batch2(), test_mxwriter_stream(), test_namedmap_newenum(), test_namespaces_as_attributes(), test_namespaces_basic(), test_namespaces_change(), test_namespaceuri(), test_navigation(), test_NetFwAuthorizedApplication(), test_newline_normalization(), test_newlines(), test_newmenu(), test_no_couninitialize_client(), test_no_couninitialize_server(), test_no_gif_palette(), test_no_marshaler(), test_nodeTypedValue(), test_nodeValue(), test_nonole_clipboard(), test_normal_marshal_and_release(), test_normal_marshal_and_unmarshal(), test_normal_marshal_and_unmarshal_twice(), test_normalize_attribute_values(), test_notification_query_async(), test_notifications(), test_NotifyFlags(), test_NotifyInterface(), test_obj_dispex(), test_object(), test_object_info(), test_object_name_(), test_ole_init_wndproc(), test_ole_initialization(), test_ole_menu(), test_OleCreate(), test_OleCreateFontIndirect(), test_OleCreatePictureIndirect(), test_OleCreateStaticFromData(), test_OleDoAutoConvert(), test_OleDraw(), test_OleInitialize_InitCounting(), test_OleLoad(), test_OleLockRunning(), test_OleRegGetMiscStatus(), test_OleRegGetUserType(), test_OleRun(), test_olestream(), test_omitxmldeclaration(), test_Open(), test_openfile(), test_optimize_faces(), test_optimize_vertices(), test_overwrite(), test_padding(), test_palette_from_bitmap(), test_parameters(), Test_Params(), test_parse_filter_data(), test_parse_for_control_panel(), test_parse_for_entire_network(), Test_ParseDisplayName(), test_ParseDisplayName(), test_parseerror(), test_ParseName(), test_persist(), test_persist_save_data(), test_persistent_state(), test_persistserialized(), test_persiststream(), test_persiststreaminit(), test_pixelformat_info(), test_PlayerData(), test_PlayerName(), test_png_palette(), test_pointer_moniker(), test_policy2_rules(), test_polygon(), test_popup(), test_predefined_palette(), test_prefix(), test_prefix_filtering(), test_preinitialization(), test_preserve_charref(), test_printers_folder(), test_profile_manager_interfaces(), test_ProgIDFromCLSID(), test_propertybag_countproperties(), test_propertybag_getpropertyinfo(), test_propertybag_read(), test_propertybag_write(), test_propertystore(), test_PropVariantChangeType_LPWSTR(), test_PropVariantToBoolean(), test_PropVariantToBSTR(), test_PropVariantToBuffer(), test_PropVariantToDouble(), test_PropVariantToString(), test_PropVariantToVariant(), test_proxy_direct(), test_proxy_interfaces(), test_proxy_marshal_and_unmarshal(), test_proxy_marshal_and_unmarshal2(), test_proxy_marshal_and_unmarshal_strong(), test_proxy_marshal_and_unmarshal_weak(), test_proxy_used_in_wrong_thread(), test_proxybuffer(), test_PSCreateMemoryPropertyStore(), test_PSCreatePropertyStoreFromObject(), test_put_data(), test_put_dataType(), test_put_nodeTypedValue(), test_put_nodeValue(), test_putref_schemas(), test_qi(), test_query_async(), test_query_interface(), test_query_recyclebin(), test_query_semisync(), test_QueryAssemblyInfo(), test_QueryCapability(), test_QueryInterface(), test_queryreader(), test_raw_decompress(), test_Read(), test_read_attribute(), test_read_cdata(), test_read_charref(), test_read_comment(), test_read_element(), test_read_full(), test_read_pending(), test_read_pi(), test_read_public_dtd(), test_read_system_dtd(), test_read_text(), test_read_xmldeclaration(), test_ReadAll(), test_ReadClassStm(), test_reader_create(), test_reader_info(), test_reader_position(), test_reader_properties(), test_reader_state(), test_readerinput(), test_readonly(), test_readvaluechunk(), test_realization(), test_Receive(), test_recinfo(), test_refcount(), test_references(), test_reflection_bound_resources(), test_reflection_constant_buffer(), test_reflection_desc_ps(), test_reflection_desc_ps_output(), test_reflection_desc_vs(), test_reflection_references(), test_refs(), test_Register(), test_register_filter(), test_register_filter_with_null_clsMinorType(), test_register_local_server(), test_Register_Revoke(), test_register_typelib(), test_RegisterCategory(), test_registered_object_thread_affinity(), test_registerset(), test_registerset_defaults(), test_registrar(), test_registry(), test_remote_data_replication(), test_Remove(), test_removeChild(), test_removeNamedItem(), test_removeQualifiedItem(), test_render_filter_priority(), test_render_run(), test_renderfile(), test_replaceChild(), test_returns(), test_Rfc1766ToLcid(), test_root_children(), test_ROT(), test_ROT_multiple_entries(), test_RtlQueryPackageIdentity(), test_RunControlPanel(), test_RunSetupCommand(), test_safearray_layout(), test_same_apartment_unmarshal_failure(), test_samplegrabber(), test_save(), test_save_load_filemoniker(), test_save_settings(), test_saxreader(), test_saxreader_dispex(), test_saxreader_encoding(), test_saxreader_features(), test_saxreader_properties(), test_SB_misc(), test_schema_refs(), test_script_cache_reuse(), test_ScriptBreak(), test_ScriptCacheGetHeight(), test_ScriptGetCMap(), test_ScriptGetFontFunctions(), test_ScriptGetFontProperties(), test_ScriptGetGlyphABCWidth(), test_ScriptGetLogicalWidths(), test_ScriptGetProperties(), test_ScriptIsComplex(), test_ScriptItemize(), test_ScriptItemize_surrogates(), test_ScriptItemIzeShapePlace(), test_ScriptLayout(), test_ScriptPlace(), test_ScriptShape(), test_ScriptShapeOpenType(), test_ScriptString(), test_ScriptString_pSize(), test_ScriptStringXtoCP_CPtoX(), test_ScriptTextOut(), test_ScriptTextOut2(), test_ScriptTextOut3(), test_ScriptXtoX(), test_scrollcaret(), test_SdbGetAppPatchDir(), test_select(), test_Select(), test_selection(), test_selectSingleNode(), test_Send(), test_SerialNumber(), test_server_xhr(), test_service(), test_Session(), test_session(), test_session_creation(), test_SessionDesc(), test_set_clipboard(), test_set_clipboard_DRAWCLIPBOARD(), test_set_coop(), test_set_frame_palette(), test_set_selection_message(), test_setAttributeNode(), test_SetData(), test_SetDocString(), test_SetFont(), test_SetFuncAndParamNames(), test_SetSite(), test_SetText(), test_setting_constants(), test_SetTypeDescAlias(), test_setvalue_on_wow64(), test_SetVarHelpContext(), test_SetZoneAttributes(), test_shader_semantics(), test_SharedMem(), test_SHChangeNotify(), test_SHCreateDefaultContextMenu(), test_SHCreateMemStream(), test_SHCreateQueryCancelAutoPlayMoniker(), test_SHCreateSessionKey(), test_SHCreateShellFolderView(), test_SHCreateShellFolderViewEx(), test_SHCreateShellItemArray(), test_SHCreateThreadRef(), test_shell_imagelist(), test_ShellExecute(), test_ShellFolderViewDual(), test_ShellItemArrayEnumItems(), test_ShellItemArrayGetAttributes(), test_ShellItemBindToHandler(), test_ShellItemCompare(), test_ShellItemGetAttributes(), test_ShellWindows(), TEST_SHGetComputerDisplayNameW(), test_SHGetFolderPath(), test_SHGetFolderPathA(), test_SHGetFolderPathEx(), test_SHGetImageList(), test_SHGetKnownFolderIDList(), test_SHGetPathFromIDList(), test_SHGetSetFolderCustomSettings(), test_SHGetStockIconInfo(), test_SHGetThreadRef(), test_SHLimitInputEdit(), test_SHLoadRegUIStringA(), test_SHLoadRegUIStringW(), test_shortcut(), test_ShortcutFolder(), test_SHParseDisplayName(), test_SHSetThreadRef(), test_simplevolume(), test_SpecialCases(), test_specific_encoder_properties(), test_sphere(), test_splitText(), test_startSession(), test_state_change(), test_StaticWidget(), test_StdMarshal_custom_marshaling(), test_StdRegProv(), test_stillimage_aggregation(), test_storages_table(), test_stream_qi(), test_streamonhglobal(), test_StreamOnIStream(), test_StreamOnMemory(), test_StreamOnStreamRange(), test_streamvolume(), test_StrFormatByteSizeEx(), test_string_pointers(), test_stringtable(), test_stub(), test_stubbuffer(), test_SummaryInfo(), test_supported_encoders(), test_supporterrorinfo(), test_SystemSecurity(), test_tablestrong_marshal_and_unmarshal_twice(), test_tableweak_and_normal_marshal_and_releasedata(), test_tableweak_and_normal_marshal_and_unmarshal(), test_tableweak_marshal_and_unmarshal_twice(), test_tableweak_marshal_releasedata1(), test_tableweak_marshal_releasedata2(), test_testTransforms(), test_textfont_global_defaults(), test_textfont_undefined(), test_textstream(), test_Texture(), test_texture_qi(), test_texture_shader(), test_TfGuidAtom(), test_ThreadMgrAdviseSinks(), test_ThreadMgrUnadviseSinks(), test_tiff_1bpp_palette(), test_tiff_24bpp(), test_tiff_4bps_bgra(), test_tiff_8bpp_alpha(), test_tiff_8bpp_palette(), test_tiff_resolution(), test_timeline(), test_timelineobj_interfaces(), test_torus(), test_transformNodeToObject(), test_TransformWithLoadingLocalFile(), test_TreatAsClass(), test_truncated_gif(), test_try_xmldoc(), test_TStoApplicationText(), test_two_tableweak_marshal_and_releasedata(), test_TxDraw(), test_TypeComp(), test_TypeInfo(), test_TypeInfo2_GetContainingTypeLib(), test_typelibmarshal(), test_undo_control(), test_uninitialized(), test_UninitializedUri(), test_Unregister(), test_UnregisterCategory(), test_update_semantics(), test_update_skinned_mesh(), test_url(), test_UrlCanonicalizeA(), test_UrlCanonicalizeW(), test_UrlCombine(), test_urlextension(), test_UrlGetPart(), test_URLOpenBlockingStreamW(), test_URLOpenStreamW(), test_URLSubRegQueryA(), test_valid_mesh(), test_validate_on_parse_values(), test_validtypes(), test_VariantToPropVariant(), test_VariantToString(), test_Verbs(), test_version_flag_versus_aw(), test_versioninfo(), test_vfw(), test_Viewport(), test_viewport_clear1(), test_viewport_clear2(), test_viewport_qi(), test_volume_dependence(), test_wavein(), test_waveout(), test_weld_vertices(), test_whitespace(), test_WICCreateBitmapFromSectionEx(), test_WICCreateColorTransform_Proxy(), test_WICMapGuidToShortName(), test_WICMapSchemaToName(), test_WICMapShortNameToGuid(), test_Win32_Baseboard(), test_Win32_Bios(), test_Win32_ComputerSystem(), test_Win32_ComputerSystemProduct(), test_Win32_DisplayControllerConfiguration(), test_Win32_IP4RouteTable(), test_Win32_OperatingSystem(), test_Win32_PhysicalMemory(), test_Win32_PnPEntity(), test_Win32_Printer(), test_Win32_Process(), test_Win32_Processor(), test_Win32_QuickFixEngineering(), test_Win32_Service(), test_Win32_SystemEnclosure(), test_Win32_VideoController(), test_Win32_WinSAT(), TEST_WinList_GetShellWindows(), test_wintrust(), test_WMCreateWriterPriv(), test_wmreader_interfaces(), test_wmsyncreader_interfaces(), test_wmwriter_interfaces(), test_worst_case(), test_wrap(), test_wrap_qi(), test_WriteAttributeString(), test_WriteCData(), test_WriteCharEntity(), test_WriteComment(), test_WriteDocType(), test_WriteElementString(), test_writeenddocument(), test_WriteEndElement(), test_WriteFullEndElement(), test_WriteLine(), test_writer_create(), test_writer_state(), test_WriteRaw(), test_writeroutput(), test_writesource_palette(), test_writestartdocument(), test_WriteStartElement(), test_WriteString(), test_wshshell(), test_XDR_datatypes(), test_XDR_schemas(), test_xmldoc(), test_xmlelem(), test_xmlelem_children(), test_xmlelem_collection(), test_XMLHTTP(), test_xmlns_attribute(), test_xmlTypes(), test_XPath(), test_XSLPattern(), test_xsltemplate(), test_xsltext(), TestAdviseAndCanonical(), TestClassesEx(), testCodepage(), TestCommandLine(), TestCompareIDList(), TestDefaultFormat(), TestDescription(), TestDesktopFolder(), TestFilenameA(), TestFilter_InputPin_ReceiveConnection(), TestFilter_JoinFilterGraph(), TestFilter_OutputPin_Connect(), TestFilter_OutputPin_ConnectSpecific(), TestFilter_Pin_ConnectedTo(), TestFilter_Pin_ConnectionMediaType(), TestFilter_Pin_Disconnect(), testFmtId(), TestGetUIObjectOf(), TestInitialize(), testinitialize_PostInitialize(), testinitialize_PreUninitialize(), TestLockBytes_WriteAt(), TestManualInstantiation(), TestModuleInterfaces(), TestNotification(), testoleobj_IOleObject_Advise(), TestOOP_IClassFactory_CreateInstance(), TestParams(), testPropsHelper(), TestSetAndGetExtraFormat(), TestShellFolder(), testSHGetFolderLocation(), testSHGetSpecialFolderLocation(), testTDA(), TestTheme(), TestUninitialized(), TextFont_GetIDsOfNames(), textfont_getname_from_range(), TextFont_GetTypeInfo(), TextFont_Invoke(), TextPara_GetIDsOfNames(), TextPara_GetTypeInfo(), TextPara_Invoke(), textrange_endof(), textrange_move(), textrange_moveend(), textrange_movestart(), textrange_set_font(), textrange_startof(), TextStoreACP_AdviseSink(), textstream_Close(), textstream_GetIDsOfNames(), textstream_Invoke(), textstream_Read(), textstream_read(), textstream_ReadAll(), textstream_ReadLine(), textstream_WriteLine(), textstream_writestr(), texture1d_init(), texture_init(), TF_UnregisterLangBarAddIn(), TgaDecoder_Frame_CopyPalette(), TgaDecoder_Frame_CopyPixels(), TgaDecoder_Initialize(), TgaDecoder_QueryCapability(), TgaDecoder_ReadImage(), TgaDecoder_ReadRLE(), ThemeDrawCaptionText(), thread_installation(), ThreadMgrEventSink_OnPopContext(), ThreadMgrEventSink_OnPushContext(), CHardErrorThread::ThreadProc(), Thunk_DDrawSurface3_GetAttachedSurface(), Thunk_DDrawSurface3_GetCaps(), tiff_decoder_copy_pixels(), tiff_decoder_get_color_context(), tiff_decoder_get_frame_info(), tiff_decoder_get_metadata_blocks(), tiff_decoder_initialize(), tiff_decoder_select_frame(), tiff_stream_read(), tiff_stream_seek(), tiff_stream_size(), tiff_stream_write(), TiffDecoder_CreateInstance(), TiffEncoder_CreateInstance(), tl_absent(), tl_present(), TLB_AllocAndInitFuncDesc(), TLB_AllocAndInitVarDesc(), TLB_get_size_from_hreftype(), TLB_NEFile_Open(), TLB_PEFile_Open(), TLB_size_instance(), to_bstr_array(), to_byte_array(), to_i4_array(), CTrayWindow::TrackCtxMenu(), TransactedSharedImpl_Commit(), TransactedSharedImpl_Construct(), TransactedSnapshotImpl_Commit(), TransactedSnapshotImpl_Construct(), TransactedSnapshotImpl_CopyTree(), TransactedSnapshotImpl_EnsureReadEntry(), TransactedSnapshotImpl_MakeStreamDirty(), TransactedSnapshotImpl_ReadDirEntry(), TransactedSnapshotImpl_StreamLink(), TransactedSnapshotImpl_StreamSetSize(), TransactedSnapshotImpl_StreamWriteAt(), TransactedSnapshotImpl_WriteDirEntry(), TransformFilter_Init(), TransformFilter_Input_Receive(), TransformFilter_InputPin_BeginFlush(), TransformFilter_InputPin_EndFlush(), TransformFilter_InputPin_EndOfStream(), TransformFilter_InputPin_NewSegment(), TransformFilter_InputPin_ReceiveConnection(), TransformFilterImpl_Pause(), TransformFilterImpl_QueryInterface(), TransformFilterImpl_Run(), TransformFilterImpl_Stop(), anonymous_namespace{mstscax.cpp}::CoClass::TranslateAccelerator(), CInternetToolbar::TranslateAcceleratorIO(), translateinfstring_test(), translateinfstringex_test(), triangulate(), triangulation_add_point(), TryShellExecuteHooks(), CSearchBar::TrySubscribeToSearchEvents(), CDefaultContextMenu::TryToBrowse(), TurnOffSpeechIfItsOn(), typedescvt_to_variantvt(), typelib_proxy_init(), typelib_stub_init(), CMenuBand::UIActivateIO(), anonymous_namespace{mstscax.cpp}::CoClass::UIDeactivate(), anonymous_namespace{mstscax.cpp}::CoClass::Unadvise(), anonymous_namespace{mstscax.cpp}::CConnectionPoint::Unadvise(), CKsProxy::Unadvise(), UnhandledExceptionFilter(), uninstall_assembly(), unk_QueryInterface(), UnloadFilter(), unlock_surface(), UnLslRLine(), ATL::CAtlFileMappingBase::Unmap(), unmarshal_object(), unmarshal_ORPCTHAT(), unmarshal_ORPCTHIS(), unregister_filters(), unregister_protocols(), UnregisterComCat(), UnregisterComponent(), unsafe_impl_from_IDirectDrawSurface(), unsafe_impl_from_IDirectDrawSurface2(), unsafe_impl_from_IDirectDrawSurface3(), unsafe_impl_from_IDirectDrawSurface4(), unsafe_impl_from_IDirectDrawSurface7(), anonymous_namespace{mstscax.cpp}::CoClass::Update(), update_client_rect(), CMenuFocusManager::UpdateFocus(), ShellBrowser::UpdateFolderView(), CSysTray::UpdateIcons(), CMenuToolbarBase::UpdateImageLists(), CBalloonQueue::UpdateInfo(), UpdateRegistryFromResource(), CRegWatcher::UpdateSpTip(), FxInterruptThreadpool::UpdateThreadPoolThreadLimits(), FxPkgPnp::UpdateWmiInstance(), upnpnat_GetIDsOfNames(), upnpnat_Invoke(), UriBuilder_CreateUri(), UriBuilder_CreateUriSimple(), UriBuilder_CreateUriWithFlags(), url_create_from_path(), UrlApplySchemeA(), UrlApplySchemeW(), UrlCanonicalizeA(), UrlCanonicalizeW(), UrlCombineA(), UrlCombineW(), UrlCreateFromPathA(), UrlCreateFromPathW(), URLDownloadToCacheFileW(), UrlEscapeA(), UrlEscapeW(), UrlGetPartA(), URLOpenBlockingStreamA(), URLOpenStreamA(), URLOpenStreamW(), URLStartDownload(), UrlUnescapeA(), UrlUnescapeW(), CMruPidlList::UsePidl(), user_read_data(), user_write_data(), userdefined_to_variantvt(), UserInstStubWrapperW(), UXTHEME_ApplyTheme(), UXTHEME_DrawBackgroundFill(), UXTHEME_DrawBorderBackground(), UXTHEME_DrawBorderRectangle(), UXTHEME_DrawImageBackground(), UXTHEME_DrawImageGlyph(), UXTHEME_FormatParseMessage(), UXTHEME_LoadTheme(), validate_components(), validate_userinfo(), FxCmResList::ValidateAndClearMapping(), ValidatePixelShader(), FxCmResList::ValidatePortAddressRange(), FxCmResList::ValidateRegisterPhysicalAddressRange(), FxCmResList::ValidateRegisterSystemAddressRange(), ValidateVertexShader(), VarDecFix(), VarDecInt(), VarDecRound(), VARIANT_CopyIRecordInfo(), variant_from_largeint(), VariantToIdlist(), VariantToPropVariant(), VarPow(), VBSAXAttributes_GetIDsOfNames(), VBSAXAttributes_getLocalName(), VBSAXAttributes_getQName(), VBSAXAttributes_getType(), VBSAXAttributes_getTypeFromName(), VBSAXAttributes_getTypeFromQName(), VBSAXAttributes_getURI(), VBSAXAttributes_getValue(), VBSAXAttributes_getValueFromName(), VBSAXAttributes_getValueFromQName(), VBSAXAttributes_Invoke(), VBSAXContentHandler_startElement(), CFolderItem::Verbs(), version_test(), vertex_shader_init(), vertexbuffer_init(), vertexdeclaration_init(), vertexshader_init(), VfwPin_Construct(), VfwPin_EnumMediaTypes(), VfwPin_GetMediaType(), VideoRenderer_create(), VideoRenderer_DoRenderSample(), VideoRenderer_SendSampleData(), VideoRendererInner_QueryInterface(), VideoWindow_get_AutoShow(), VideoWindow_get_BackgroundPalette(), VideoWindow_get_BorderColor(), VideoWindow_get_Caption(), VideoWindow_get_FullScreenMode(), VideoWindow_get_Height(), VideoWindow_get_Left(), VideoWindow_get_MessageDrain(), VideoWindow_get_Owner(), VideoWindow_get_Top(), VideoWindow_get_Visible(), VideoWindow_get_Width(), VideoWindow_get_WindowState(), VideoWindow_get_WindowStyle(), VideoWindow_get_WindowStyleEx(), VideoWindow_GetIDsOfNames(), VideoWindow_GetMaxIdealImageSize(), VideoWindow_GetMinIdealImageSize(), VideoWindow_GetRestorePosition(), VideoWindow_GetTypeInfo(), VideoWindow_GetTypeInfoCount(), VideoWindow_GetWindowPosition(), VideoWindow_HideCursor(), VideoWindow_Invoke(), VideoWindow_IsCursorHidden(), VideoWindow_NotifyOwnerMessage(), VideoWindow_put_AutoShow(), VideoWindow_put_BackgroundPalette(), VideoWindow_put_BorderColor(), VideoWindow_put_Caption(), VideoWindow_put_FullScreenMode(), VideoWindow_put_Height(), VideoWindow_put_Left(), VideoWindow_put_MessageDrain(), VideoWindow_put_Owner(), VideoWindow_put_Top(), VideoWindow_put_Visible(), VideoWindow_put_Width(), VideoWindow_put_WindowState(), VideoWindow_put_WindowStyle(), VideoWindow_put_WindowStyleEx(), VideoWindow_SetWindowForeground(), VideoWindow_SetWindowPosition(), View_Fetch(), view_invoke(), VMR9_BreakConnect(), VMR9_CompleteConnect(), VMR9_DoRenderSample(), VMR9_ImagePresenter_PresentImage(), VMR9_ImagePresenter_PresentOffscreenSurface(), VMR9_ImagePresenter_PresentTexture(), VMR9_maybe_init(), VMR9_QueryInterface(), VMR9_SendSampleData(), VMR9_SurfaceAllocator_SetAllocationSettings(), VMR9_SurfaceAllocator_UpdateDeviceReset(), VMR9DefaultAllocatorPresenterImpl_create(), VMR9FilterConfig_SetRenderingMode(), VMR9Inner_QueryInterface(), VMR9SurfaceAllocatorNotify_AllocateSurfaceHelper(), VMR9WindowlessControl_RepaintVideo(), vmr_create(), Volume_Init(), volumetexture_init(), vs_1_x_header(), vs_2_header(), CRegTreeOptions::WalkTree(), warning(), WAVEParser_create(), WAVEParser_first_request(), WAVEParser_InputPin_PreConnect(), WAVEParser_Sample(), wbem_locator_ConnectServer(), wbem_services_CreateInstanceEnum(), wbem_services_ExecMethod(), wbem_services_ExecNotificationQueryAsync(), wbem_services_ExecQueryAsync(), WdtpInterfacePointer_UserSize(), WdtpInterfacePointer_UserUnmarshal(), WebChildWindow::WebChildWindow(), WICCreateBitmapFromSectionEx(), WICCreateColorTransform_Proxy(), WICSetEncoderFormat_Proxy(), Widget_Coclass(), Widget_Coclass_ptr(), Widget_complex_struct(), Widget_Create(), Widget_GetIDsOfNames(), Widget_GetTypeInfo(), Widget_GetTypeInfoCount(), Widget_iface_ptr(), Widget_Invoke(), Widget_safearray(), Widget_VarArg(), Widget_VarArg_Ref_Run(), Widget_VarArg_Run(), window_proc(), wined3d_buffer_create(), wined3d_check_device_multisample_type(), wined3d_create(), wined3d_cs_map(), wined3d_cs_unmap(), wined3d_device_begin_stateblock(), wined3d_device_clear_rendertarget_view(), wined3d_device_create(), wined3d_device_create_cursor_texture(), wined3d_device_create_primary_opengl_context_cs(), wined3d_device_get_device_caps(), wined3d_device_init_3d(), wined3d_device_init_gdi(), wined3d_device_process_vertices(), wined3d_device_reset(), wined3d_device_set_cursor_properties(), wined3d_event_query_create(), wined3d_fence_create(), wined3d_find_closest_matching_adapter_mode(), wined3d_get_output_desc(), wined3d_palette_create(), wined3d_palette_init(), wined3d_rendertarget_view_create(), wined3d_shader_create_cs(), wined3d_shader_create_ds(), wined3d_shader_create_gs(), wined3d_shader_create_hs(), wined3d_shader_create_ps(), wined3d_shader_create_vs(), wined3d_shader_resource_view_create(), wined3d_stateblock_create(), wined3d_swapchain_create(), wined3d_swapchain_get_display_mode(), wined3d_swapchain_resize_buffers(), wined3d_swapchain_resize_target(), wined3d_swapchain_set_display_mode(), wined3d_swapchain_set_fullscreen(), wined3d_texture_blt(), wined3d_texture_create(), wined3d_texture_init(), wined3d_unordered_access_view_create(), wined3d_vertex_declaration_create(), wined3d_vertex_declaration_create_from_fvf(), winhttp_request_get_Option(), winhttp_request_get_ResponseBody(), winhttp_request_GetIDsOfNames(), winhttp_request_Invoke(), winhttp_request_put_Option(), winhttp_request_Send(), winhttp_request_SetAutoLogonPolicy(), WinList_FindFolderWindow(), WinList_NotifyNewLocation(), WinList_RegisterPending(), ATL::CAtlExeModuleT< T >::WinMain(), WinMGMTS_ParseDisplayName(), wmain(), FileChildWindow::WndProc(), WebChildWindow::WndProc(), QuickLaunchBar::WndProc(), wpp_open(), CMemPropertyBag::Write(), CRegPropertyBag::Write(), CIniPropertyBag::Write(), write_attribute_string(), write_buffer_to_file(), write_clipformat(), write_doctype(), write_element_string(), write_encoding_bom(), write_filter_data(), write_hlink_string(), write_iface_fs(), write_output_buffer(), write_param_fs(), write_source(), write_start_element(), write_stream(), write_string(), write_substorage_to_file(), CShellLink::WriteAdvertiseInfo(), WriteMinidump(), writer_close_starttag(), writer_set_output(), writer_set_property(), writeroutput_flush_stream(), writeroutput_query_for_stream(), WshCollection_GetIDsOfNames(), WshCollection_Invoke(), WshCollection_Item(), WshEnvironment_GetIDsOfNames(), WshEnvironment_Invoke(), WshExec_GetIDsOfNames(), WshExec_Invoke(), WshShell3_GetIDsOfNames(), WshShell3_Invoke(), WshShell3_Popup(), WshShell3_RegRead(), WshShell3_RegWrite(), WshShell3_Run(), WshShortcut_Create(), WshShortcut_get_Arguments(), WshShortcut_get_IconLocation(), WshShortcut_get_WorkingDirectory(), WshShortcut_GetIDsOfNames(), WshShortcut_Invoke(), WshShortcut_put_IconLocation(), WshShortcut_Save(), wWinMain(), xmlreader_GetValue(), xmlreader_Read(), xmlreader_SetInput(), xmlwriter_SetOutput(), xmlwriter_WriteAttributeString(), xmlwriter_WriteDocType(), xmlwriter_WriteElementString(), xmlwriter_WriteStartElement(), xslprocessor_addParameter(), xslprocessor_put_input(), xslprocessor_put_output(), xslprocessor_set_parvalue(), xslprocessor_transform(), CZipFolder::ZipFolderMenuCallback(), ZoneMgrImpl_GetZoneAttributes(), and ZoneMgrImpl_SetZoneAttributes().

◆ InitPropertyBag

struct IPropertyBag InitPropertyBag
static
Initial value:
= {
}
static const IPropertyBagVtbl InitPropertyBag_IPropertyBagVtbl
Definition: shlfolder.c:1359

Definition at line 1367 of file shlfolder.c.

Referenced by test_FolderShortcut().

◆ InitPropertyBag_IPropertyBagVtbl

const IPropertyBagVtbl InitPropertyBag_IPropertyBagVtbl
static
Initial value:
= {
}
static HRESULT WINAPI InitPropertyBag_IPropertyBag_Write(IPropertyBag *iface, LPCOLESTR pszPropName, VARIANT *pVar)
Definition: shlfolder.c:1352
static ULONG WINAPI InitPropertyBag_IPropertyBag_Release(IPropertyBag *iface)
Definition: shlfolder.c:1282
static HRESULT WINAPI InitPropertyBag_IPropertyBag_Read(IPropertyBag *iface, LPCOLESTR pszPropName, VARIANT *pVar, IErrorLog *pErrorLog)
Definition: shlfolder.c:1286
static HRESULT WINAPI InitPropertyBag_IPropertyBag_QueryInterface(IPropertyBag *iface, REFIID riid, void **ppvObject)
Definition: shlfolder.c:1261
static ULONG WINAPI InitPropertyBag_IPropertyBag_AddRef(IPropertyBag *iface)
Definition: shlfolder.c:1278

Definition at line 1359 of file shlfolder.c.

◆ LPCITEMIDLIST

Definition at line 53 of file shlfolder.c.

Referenced by test_GetAttributesOf(), and test_SHGetPathFromIDList().

◆ 

struct { ... } parse_tests[]
Initial value:
= {
{{'c',':','\\',0}, S_OK},
{{'c',':','\\','\\',0}, E_INVALIDARG, 1},
{{'c',':','\\','f','a','k','e',0}, 0x80070002},
{{'c',':','f','a','k','e',0}, E_INVALIDARG, 1},
{{'c',':','/',0}, E_INVALIDARG, 1},
{{'c',':','\\','w','i','n','d','o','w','s',0}, S_OK},
{{'c',':','\\','w','i','n','d','o','w','s','\\',0}, S_OK},
{{'c',':','\\','w','i','n','d','o','w','s','\\','.',0}, E_INVALIDARG, 1},
{{'c',':','\\','w','i','n','d','o','w','s','\\','.','.',0}, E_INVALIDARG, 1},
{{'.',0}, E_INVALIDARG, 1},
{{'.','.',0}, E_INVALIDARG, 1},
{{'t','e','s','t',0}, 0x80070002},
{{'t','e','s','t','\\',0}, 0x80070002},
{{'s','u','b','\\','d','i','r',0}, 0x80070002},
{{'s','u','b','/','d','i','r',0}, E_INVALIDARG, 1},
{{'h','t','t','p',':',0}, S_OK, 1},
{{'h','t','t','p',':','t','e','s','t',0}, S_OK, 1},
{{'h','t','t','p',':','\\','t','e','s','t',0}, S_OK, 1},
{{'x','x',':',0}, S_OK, 1},
}

Referenced by test_ParseDisplayName().

◆ path

Definition at line 182 of file shlfolder.c.

Referenced by test_SHCreateShellItemArray().

◆ PBOOL

IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static PWSTR *static PWSTR *static void **static PIDLIST_ABSOLUTE *static void **static PBOOL

Definition at line 63 of file shlfolder.c.

◆ PCWSTR

Definition at line 51 of file shlfolder.c.

◆ ppM

◆ ppv

Definition at line 49 of file shlfolder.c.

◆ REFIID

◆ riid

Definition at line 49 of file shlfolder.c.

◆ SIGDN

IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder LPCITEMIDLIST IShellItemArray **static PCIDLIST_ABSOLUTE IShellItemArray **static void **static void **static PWSTR *static SIGDN

Definition at line 59 of file shlfolder.c.

◆ test_new_delivery_flag

BOOL test_new_delivery_flag

Definition at line 4871 of file shlfolder.c.

Referenced by test_SHChangeNotify(), and testwindow_wndproc().

◆ testwindow_class

const CHAR testwindow_class[] = "testwindow"
static

Definition at line 4854 of file shlfolder.c.

Referenced by register_testwindow_class(), and test_SHChangeNotify().

◆ todo

int todo

Definition at line 184 of file shlfolder.c.

Referenced by test_contextmenu_qi(), and test_ParseDisplayName().

◆ UINT

IBindCtx void **static IBindCtx void **static void **static IShellFolder IShellItem **static IShellFolder UINT

Definition at line 54 of file shlfolder.c.

◆ vt_IUnknown

const IUnknownVtbl vt_IUnknown
static
Initial value:
= {
}
static HRESULT WINAPI unk_fnQueryInterface(IUnknown *iunk, REFIID riid, void **punk)
Definition: shlfolder.c:2988
static ULONG WINAPI unk_fnAddRef(IUnknown *iunk)
Definition: shlfolder.c:3007
static ULONG WINAPI unk_fnRelease(IUnknown *iunk)
Definition: shlfolder.c:3012

Definition at line 3017 of file shlfolder.c.

Referenced by test_SHGetIDListFromObject(), and test_SHGetItemFromObject().