25#define MAX_URL_LENGTH 1024
27#define PT_INTERNET_URL 0x61
28#define IFUIF_UNICODE 0x80
40 if ((
'A' <=
c &&
c <=
'Z') || (
'a' <=
c &&
c <=
'z'))
42 return c ==
'+' ||
c ==
'-' ||
c ==
'.' ? 1 : -1;
49 for (
unsigned int i = 0;;)
93 &IID_IUniformResourceLocatorW, (
void**)
ppv);
95 hr = (*ppv)->lpVtbl->SetURL(*
ppv, Url, 0);
161 if (
len + 1 ==
sizeof(
"shell:"))
164 lstrcpynW(szBuf, pszDisplayName,
sizeof(
"shell:"));
172 *pchEaten =
lstrlenW(pszDisplayName);
182 *ppenumIDList =
NULL;
206 return cmp < 0 ? 0xffff :
cmp != 0;
223 *rgfInOut &= SFGAO_FOLDER | SFGAO_CANLINK | SFGAO_STREAM;
227 for (
i = 0;
i < cidl; ++
i)
232 *rgfInOut &= SFGAO_CANLINK | SFGAO_BROWSABLE | SFGAO_STREAM;
247 IUniformResourceLocatorW *pUrlLnk;
252 hr = IUnknown_QueryInterface(pUrlLnk,
riid,
ppv);
253 IUnknown_Release(pUrlLnk);
297 *pClassID = CLSID_Internet;
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
void WINAPI SHFree(LPVOID pv)
LPVOID WINAPI SHAlloc(SIZE_T len)
HRESULT WINAPI SHStrDupW(LPCWSTR src, LPWSTR *dest)
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
GLuint GLuint GLsizei count
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
static void lock_module(void)
static void unlock_module(void)
static ULONG Unknown_AddRef(CInternetFolder *This)
static PWSTR GetUrl(IFURLITEM *pUrl, PWSTR Buffer)
static HRESULT WINAPI BindToStorage(IShellFolder *This, PCUIDLIST_RELATIVE pidl, IBindCtx *pbc, REFIID riid, void **ppvOut)
static int GetSchemeCharType(WCHAR c)
static CInternetFolder * CreateInstance(void)
static HRESULT WINAPI CompareIDs(IShellFolder *This, LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2)
struct _IFURLITEM IFURLITEM
static HRESULT WINAPI BindToObject(IShellFolder *This, PCUIDLIST_RELATIVE pidl, IBindCtx *pbc, REFIID riid, void **ppvOut)
static HRESULT WINAPI SetNameOf(IShellFolder *This, HWND hwndOwner, PCUITEMID_CHILD pidl, LPCWSTR pszName, SHGDNF uFlags, PITEMID_CHILD *ppidlOut)
static ULONG WINAPI ShellFolder_AddRef(IShellFolder *This)
static ULONG WINAPI PersistFolder_AddRef(IPersistFolder *This)
static ULONG WINAPI ShellFolder_Release(IShellFolder *This)
static HRESULT WINAPI ShellFolder_QueryInterface(IShellFolder *This, REFIID riid, PVOID *ppvObject)
static HRESULT CreateUrlShortcut(PCWSTR Url, IUniformResourceLocatorW **ppv)
struct _CInternetFolder CInternetFolder
int WINAPI SHAnsiToUnicodeCP(UINT CodePage, LPCSTR pszSrc, LPWSTR pwszDst, int cwchBuf)
static HRESULT Unknown_QueryInterface(CInternetFolder *This, REFIID riid, PVOID *ppvObject)
static HRESULT WINAPI PersistFolder_QueryInterface(IPersistFolder *This, REFIID riid, PVOID *ppvObject)
static const IShellFolderVtbl ShellFolderVtbl
static unsigned int GetSchemeLength(PCWSTR s)
static HRESULT WINAPI PersistFolder_Initialize(IPersistFolder *This, PCIDLIST_ABSOLUTE pidl)
static ULONG WINAPI PersistFolder_Release(IPersistFolder *This)
static IFURLITEM * IsUrlItem(LPCITEMIDLIST pidl)
static HRESULT WINAPI CreateViewObject(IShellFolder *This, HWND hwndOwner, REFIID riid, void **ppv)
static HRESULT WINAPI GetAttributesOf(IShellFolder *This, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, SFGAOF *rgfInOut)
static LPITEMIDLIST CreateUrlItem(PCWSTR pszUrl)
static HRESULT WINAPI PersistFolder_GetClassID(IPersistFolder *This, CLSID *pClassID)
HRESULT WINAPI CInternetFolder_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
static const IPersistFolderVtbl PersistFolderVtbl
static HRESULT WINAPI GetDisplayNameOf(IShellFolder *This, PCUITEMID_CHILD pidl, SHGDNF uFlags, STRRET *pSR)
static ULONG Unknown_Release(CInternetFolder *This)
static HRESULT WINAPI GetUIObjectOf(IShellFolder *This, HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *rgfReserved, void **ppv)
static HRESULT WINAPI ShellFolder_EnumObjects(IShellFolder *This, HWND hwndOwner, SHCONTF grfFlags, IEnumIDList **ppenumIDList)
static DWORD DWORD void LPSTR DWORD cch
static HMODULE MODULEINFO DWORD cb
#define cmp(status, error)
static IParseDisplayName ParseDisplayName
const GUID IID_IDataObject
LPITEMIDLIST WINAPI ILGetNext(LPCITEMIDLIST pidl)
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
const ITEMIDLIST_RELATIVE UNALIGNED * PCUIDLIST_RELATIVE
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
IShellFolder IShellFolder_iface
IPersistFolder IPersistFolder_iface
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define CLASS_E_NOAGGREGATION