40 #define COLUMN_DOCUMENTS 1 41 #define COLUMN_STATUS 2 42 #define COLUMN_COMMENTS 3 43 #define COLUMN_LOCATION 4 44 #define COLUMN_MODEL 5 46 #define PrinterSHELLVIEWCOLUMNS (6) 55 CComPtr<IDefaultExtractIconInit> initIcon;
63 return initIcon->QueryInterface(
riid,
ppv);
102 PIDLPrinterStruct *
p;
103 int size0 = (
char*)&tmp.u.cprinter.szName - (
char*)&tmp.u.cprinter;
107 tmp.u.cprinter.dummy = 0xFF;
108 if (
pi->pPrinterName)
109 tmp.u.cprinter.offsServer =
wcslen(
pi->pPrinterName) + 1;
111 tmp.u.cprinter.offsServer = 1;
113 size += tmp.u.cprinter.offsServer *
sizeof(
WCHAR);
123 pidl->mkid.cb =
size + 2;
124 memcpy(pidl->mkid.abID, &tmp, 2 + size0);
126 p = &((
PIDLDATA*)pidl->mkid.abID)->u.cprinter;
128 p->Attributes =
pi->Attributes;
129 if (
pi->pPrinterName)
132 p->szName[0] =
L'\0';
135 wcscpy(
p->szName +
p->offsServer,
pi->pServerName);
137 p->szName[
p->offsServer] =
L'\0';
139 *(
WORD*)((
char*)pidl + (
size + 2)) = 0;
153 if (
dwFlags & SHCONTF_NONFOLDERS)
168 for(
i = 0;
i <
num;
i++) {
190 TRACE(
"-- destroying IShellFolder(%p)\n",
this);
203 TRACE(
"(%p)->(HWND=%p,%p,%p=%s,%p,pidl=%p,%p)\n",
204 this, hwndOwner, pbc, lpszDisplayName,
debugstr_w(lpszDisplayName),
205 pchEaten, ppidl, pdwAttributes);
219 return (PIDLPrinterStruct*) & (
pdata->u.cfont);
245 FIXME (
"(%p)->(pidl=%p,%p,%s,%p) stub\n",
265 CComPtr<IShellView> pShellView;
268 TRACE(
"(%p)->(hwnd=%p,%s,%p)\n",
this,
278 WARN(
"IDropTarget not implemented\n");
283 WARN(
"IContextMenu not implemented\n");
291 TRACE (
"-- (%p)->(interface=%p)\n",
this, ppvOut);
300 static const DWORD dwPrintersAttributes =
301 SFGAO_HASPROPSHEET | SFGAO_STORAGEANCESTOR | SFGAO_FILESYSANCESTOR | SFGAO_FOLDER | SFGAO_CANRENAME | SFGAO_CANDELETE;
304 FIXME (
"(%p)->(cidl=%d apidl=%p mask=0x%08lx): stub\n",
305 this, cidl, apidl, *rgfInOut);
307 *rgfInOut &= dwPrintersAttributes;
309 *rgfInOut &= ~SFGAO_VALIDATE;
311 TRACE (
"-- result=0x%08x\n", *rgfInOut);
333 TRACE (
"(%p)->(%p,%u,apidl=%p,%s,%p,%p)\n",
350 TRACE (
"(%p)->hr=0x%08lx\n",
this,
hr);
360 PIDLPrinterStruct *
p;
362 TRACE (
"(%p)->(pidl=%p,0x%08lx,%p)\n",
this, pidl,
dwFlags, strRet);
374 ERR(
"no printer struct\n");
378 return SHSetStrRet(strRet,
p->szName);
396 FIXME(
"(%p)->(%p,pidl=%p,%s,%lu,%p)\n",
this, hwndOwner, pidl,
404 FIXME(
"(%p)\n",
this);
410 FIXME(
"(%p)\n",
this);
435 FIXME(
"(%p): stub\n",
this);
442 TRACE(
"(%p)->(%p %i %p): stub\n",
this, pidl, iColumn, psd);
463 FIXME (
"(%p): stub\n",
this);
472 TRACE (
"(%p)\n",
this);
474 *lpClassId = CLSID_Printers;
496 TRACE (
"(%p)->(%p)\n",
this, pidl);
#define IDS_SHV_COLUMN_COMMENTS
BOOL CreatePrintersEnumList(DWORD dwFlags)
virtual HRESULT WINAPI Initialize(PCIDLIST_ABSOLUTE pidl)
#define IDS_SHV_COLUMN_LOCATION
LPPIDLDATA _ILGetDataPointer(LPCITEMIDLIST pidl)
interface IBindCtx * LPBC
WINE_DEFAULT_DEBUG_CHANNEL(shell)
#define PrinterSHELLVIEWCOLUMNS
BOOL AddToEnumList(LPITEMIDLIST pidl)
virtual HRESULT WINAPI GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET strRet)
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
virtual HRESULT WINAPI SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags, PITEMID_CHILD *pPidlOut)
const char * shdebugstr_guid(const struct _GUID *id)
WCHAR swShell32Name[MAX_PATH]
static LPITEMIDLIST _ILCreatePrinterItem(PRINTER_INFO_4W *pi)
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
virtual HRESULT WINAPI GetDefaultColumnState(UINT iColumn, DWORD *pcsFlags)
static PIDLPrinterStruct * _ILGetPrinterStruct(LPCITEMIDLIST pidl)
HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pcsfv, IShellView **ppsv)
#define IID_PPV_ARG(Itype, ppType)
virtual HRESULT WINAPI MapColumnToSCID(UINT column, SHCOLUMNID *pscid)
#define IDS_SHV_COLUMN_MODEL
virtual HRESULT WINAPI EnumObjects(HWND hwndOwner, DWORD dwFlags, LPENUMIDLIST *ppEnumIDList)
const PCUITEMID_CHILD * PCUITEMID_CHILD_ARRAY
virtual HRESULT WINAPI EnumSearches(IEnumExtraSearch **ppenum)
virtual HRESULT WINAPI GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut, LPVOID *ppvOut)
virtual HRESULT WINAPI CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2)
struct _SFV_CREATE SFV_CREATE
HRESULT WINAPI CPrintersExtractIconW_CreateInstane(LPCITEMIDLIST pidl, REFIID riid, LPVOID *ppv)
static PROTOCOLDATA * pdata
HRESULT SHELL32_CompareDetails(IShellFolder2 *isf, LPARAM lParam, LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define IDS_SHV_COLUMN_STATUS
static shvheader PrinterSFHeader[]
#define FAILED_UNEXPECTEDLY(hr)
virtual HRESULT WINAPI GetDefaultColumn(DWORD dwRes, ULONG *pSort, ULONG *pDisplay)
virtual HRESULT WINAPI GetDetailsEx(PCUITEMID_CHILD pidl, const SHCOLUMNID *pscid, VARIANT *pv)
#define PRINTER_ENUM_LOCAL
WINBOOL WINAPI EnumPrintersW(DWORD Flags, LPWSTR Name, DWORD Level, LPBYTE pPrinterEnum, DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned)
virtual HRESULT WINAPI BindToObject(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
virtual HRESULT WINAPI GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, DWORD *rgfInOut)
#define memcpy(s1, s2, n)
HRESULT WINAPI Initialize(HWND hwndOwner, DWORD dwFlags)
virtual HRESULT WINAPI GetDetailsOf(PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *psd)
virtual HRESULT WINAPI CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut)
virtual HRESULT WINAPI GetDefaultSearchGUID(GUID *pguid)
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
void shell(int argc, const char *argv[])
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
#define COM_INTERFACE_ENTRY_IID(iid, x)
void pdump(LPCITEMIDLIST pidl)
virtual HRESULT WINAPI BindToStorage(PCUIDLIST_RELATIVE pidl, LPBC pbcReserved, REFIID riid, LPVOID *ppvOut)
virtual HRESULT WINAPI ParseDisplayName(HWND hwndOwner, LPBC pbc, LPOLESTR lpszDisplayName, DWORD *pchEaten, PIDLIST_RELATIVE *ppidl, DWORD *pdwAttributes)
void WINAPI SHFree(LPVOID pv)
const ITEMIDLIST_RELATIVE UNALIGNED * PCUIDLIST_RELATIVE
virtual HRESULT WINAPI GetCurFolder(PIDLIST_ABSOLUTE *pidl)
#define IDI_SHELL_PRINTER
#define IDS_SHV_COLUMN_DOCUMENTS
#define IDS_SHV_COLUMN_NAME
virtual HRESULT WINAPI GetClassID(CLSID *lpClassId)
ITEMIDLIST UNALIGNED * LPITEMIDLIST
LPVOID WINAPI SHAlloc(SIZE_T len)
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define HeapFree(x, y, z)
#define IsEqualIID(riid1, riid2)