196 FIXME(
"Unsupported error code: %d\n",
err);
238 return This->mode == ForWriting ||
This->mode == ForAppending;
240 return This->mode == ForReading;
253 *
obj = &
This->ITextStream_iface;
257 *
obj = &
This->classinfo.IProvideClassInfo_iface;
301 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
318 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
327 DISPPARAMS *pDispParams,
VARIANT *pVarResult,
328 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
335 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
341 pDispParams, pVarResult, pExcepInfo, puArgErr);
381 *eos =
This->size.QuadPart ==
pos.QuadPart ? VARIANT_TRUE : VARIANT_FALSE;
408 if (toread <
sizeof(
WCHAR))
409 return CTL_E_ENDOFFILE;
466 if (!
This->first_read) {
470 hr = ITextStream_get_AtEndOfStream(iface, &eos);
474 if (eos == VARIANT_TRUE)
475 return CTL_E_ENDOFFILE;
482 toread =
end.QuadPart -
start.QuadPart;
513 hr = ITextStream_get_AtEndOfStream(iface, &eos);
517 if (eos == VARIANT_TRUE)
518 return CTL_E_ENDOFFILE;
539 if (!
This->first_read) {
543 hr = ITextStream_get_AtEndOfStream(iface, &eos);
547 if (eos == VARIANT_TRUE)
548 return CTL_E_ENDOFFILE;
555 toread =
end.QuadPart -
start.QuadPart;
606 static const char crlfA[] = {
'\r',
'\n'};
736 if (
mode == ForReading)
741 if (
mode == ForWriting)
749 ITextStream_Release(&
stream->ITextStream_iface);
756 if (
format == TristateUseDefault)
764 ITextStream_Release(&
stream->ITextStream_iface);
797 *
obj = &
This->classinfo.IProvideClassInfo_iface;
841 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
858 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
867 DISPPARAMS *pDispParams,
VARIANT *pVarResult,
868 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
875 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
881 pDispParams, pVarResult, pExcepInfo, puArgErr);
914 FIXME(
"(%p)->(%p): stub\n",
This, share_name);
1091 *ready =
ret ? VARIANT_TRUE : VARIANT_FALSE;
1135 This->root[0] = letter;
1136 This->root[1] =
':';
1137 This->root[2] =
'\\';
1157 IEnumVARIANT_AddRef(iface);
1182 IFolderCollection_Release(&
This->data.u.foldercoll.coll->IFolderCollection_iface);
1192 static const WCHAR allW[] = {
'*',0};
1199 if (
len && pathW[
len-1] !=
'\\')
1232 if (!celt)
return S_OK;
1264 if (
count >= celt)
break;
1282 if (!celt)
return S_OK;
1315 This->data.u.foldercoll.find =
NULL;
1348 This->data.u.foldercoll.find =
NULL;
1350 IFolderCollection_AddRef(&
collection->IFolderCollection_iface);
1366 IFileCollection_Release(&
This->data.u.filecoll.coll->IFileCollection_iface);
1386 if (!celt)
return S_OK;
1412 if (++
count >= celt)
break;
1430 if (!celt)
return S_OK;
1492 IFileCollection_AddRef(&
collection->IFileCollection_iface);
1508 IDriveCollection_Release(&
This->data.u.drivecoll.coll->IDriveCollection_iface);
1517 int i = penum->
data.u.drivecoll.cur == -1 ? 0 : penum->
data.u.drivecoll.cur + 1;
1520 if (penum->
data.u.drivecoll.coll->drives & (1 <<
i))
1522 penum->
data.u.drivecoll.cur =
i;
1539 if (!celt)
return S_OK;
1552 if (++
count >= celt)
break;
1567 if (!celt)
return S_OK;
1581 This->data.u.drivecoll.cur = -1;
1614 This->data.u.drivecoll.cur = -1;
1615 IDriveCollection_AddRef(&
collection->IDriveCollection_iface);
1634 *
obj = &
This->IFolderCollection_iface;
1638 *
obj = &
This->classinfo.IProvideClassInfo_iface;
1682 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
1699 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
1708 DISPPARAMS *pDispParams,
VARIANT *pVarResult,
1709 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
1716 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1722 pDispParams, pVarResult, pExcepInfo, puArgErr);
1758 static const WCHAR allW[] = {
'\\',
'*',0};
1819 *folders = &
This->IFolderCollection_iface;
1836 *
obj = &
This->IFileCollection_iface;
1840 *
obj = &
This->classinfo.IProvideClassInfo_iface;
1884 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
1901 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
1910 DISPPARAMS *pDispParams,
VARIANT *pVarResult,
1911 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
1918 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
1924 pDispParams, pVarResult, pExcepInfo, puArgErr);
1953 static const WCHAR allW[] = {
'\\',
'*',0};
2013 *files = &
This->IFileCollection_iface;
2029 *
obj = &
This->IDriveCollection_iface;
2033 *
obj = &
This->classinfo.IProvideClassInfo_iface;
2074 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
2091 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
2100 DISPPARAMS *pDispParams,
VARIANT *pVarResult,
2101 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
2108 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
2114 pDispParams, pVarResult, pExcepInfo, puArgErr);
2203 *
obj = &
This->classinfo.IProvideClassInfo_iface;
2247 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
2264 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
2273 DISPPARAMS *pDispParams,
VARIANT *pVarResult,
2274 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
2281 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
2287 pDispParams, pVarResult, pExcepInfo, puArgErr);
2412 FIXME(
"(%p)->(%x): stub\n",
This, force);
2433 FIXME(
"(%p)->(%p): stub\n",
This, isroot);
2549 *
obj = &
This->classinfo.IProvideClassInfo_iface;
2599 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
2612 rgszNames, cNames, lcid, rgDispId);
2616 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
2629 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
2635 pDispParams, pVarResult, pExcepInfo, puArgErr);
2805 size.u.LowPart =
fd.nFileSizeLow;
2806 size.u.HighPart =
fd.nFileSizeHigh;
2940 TRACE(
"Interface IDispatchEx not supported - returning NULL\n");
2946 TRACE(
"Interface IObjectWithSite not supported - returning NULL\n");
2963 TRACE(
"%p\n", iface);
2970 TRACE(
"%p\n", iface);
2977 TRACE(
"(%p)->(%p)\n", iface, pctinfo);
2986 TRACE(
"(%p)->(%u %u %p)\n", iface, iTInfo, lcid, ppTInfo);
3002 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
3011 DISPPARAMS *pDispParams,
VARIANT *pVarResult,
3012 EXCEPINFO *pExcepInfo,
UINT *puArgErr)
3018 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
3024 pDispParams, pVarResult, pExcepInfo, puArgErr);
3033 TRACE(
"%p %p\n", iface, ppdrives);
3149 *pbstrResult =
NULL;
3170 *pbstrResult =
NULL;
3184 *pbstrResult =
NULL;
3205 *pbstrResult =
NULL;
3222 *pbstrResult =
NULL;
3257 static const WCHAR cur_path[] = {
'.',0};
3283 for(beg=3,
i=3;
i<=
len;
i++) {
3293 exp_len =
lstrlenW(fdata.cFileName);
3294 if(exp_len ==
i-beg)
3309 static const WCHAR fmt[] = {
'r',
'a',
'd',
'%',
'0',
'5',
'X',
'.',
't',
'x',
't',0};
3313 TRACE(
"%p %p\n", iface, pbstrResult);
3337 *pfExists = VARIANT_FALSE;
3341 driveletter =
towupper(DriveSpec[0]);
3342 if (driveletter >=
'A' && driveletter <=
'Z'
3343 && (
len < 2 || DriveSpec[1] ==
':')
3344 && (
len < 3 || DriveSpec[2] ==
'\\')) {
3345 const WCHAR root[] = {driveletter,
':',
'\\', 0};
3398 else if (
len <= 3) {
3399 driveletter =
towupper(DriveSpec[0]);
3400 if (driveletter <
'A' || driveletter >
'Z'
3401 || (
len >= 2 && DriveSpec[1] !=
':')
3402 || (
len == 3 && DriveSpec[2] !=
'\\'))
3404 hr = IFileSystem3_DriveExists(iface, DriveSpec, &drive_exists);
3407 if (drive_exists == VARIANT_FALSE)
3411 if (DriveSpec[0] !=
'\\' || DriveSpec[1] !=
'\\')
3474 case TemporaryFolder:
3477 if (
ret && pathW[
ret-1] ==
'\\')
3516 name_len =
lstrlenW(ffd.cFileName);
3574 if(ffd.cFileName[0]==
'.' && (ffd.cFileName[1]==0 ||
3575 (ffd.cFileName[1]==
'.' && ffd.cFileName[2]==0)))
3578 name_len =
lstrlenW(ffd.cFileName);
3645 DWORD src_len, dst_len, name_len;
3650 if(!
source[0] || !destination[0])
3677 src_path[src_len++] =
'\\';
3680 dst_len = destination_len;
3685 memcpy(dst_path, destination, dst_len*
sizeof(
WCHAR));
3686 if(dst_path[dst_len-1]!=
'\\' && dst_path[dst_len-1]!=
'/')
3687 dst_path[dst_len++] =
'\\';
3694 name_len =
lstrlenW(ffd.cFileName);
3699 memcpy(src_path+src_len, ffd.cFileName, (name_len+1)*
sizeof(
WCHAR));
3700 memcpy(dst_path+dst_len, ffd.cFileName, (name_len+1)*
sizeof(
WCHAR));
3704 if(!
CopyFileW(src_path, dst_path, !overwrite)) {
3731 DWORD tmp, src_len, dst_len, name_len;
3738 if(!
source[0] || !destination[0])
3741 dst_len = destination_len;
3746 if(
dst[dst_len-1]!=
'\\' &&
dst[dst_len-1]!=
'/' &&
3760 src_len = source_len;
3764 src[src_len++] =
'\\';
3779 src[src_len++] =
'\\';
3786 dst[dst_len++] =
'\\';
3792 if(ffd.cFileName[0]==
'.' && (ffd.cFileName[1]==0 ||
3793 (ffd.cFileName[1]==
'.' && ffd.cFileName[2]==0)))
3796 name_len =
lstrlenW(ffd.cFileName);
3802 dst[dst_len+name_len] = 0;
3804 src[src_len+name_len] =
'\\';
3805 src[src_len+name_len+1] =
'*';
3806 src[src_len+name_len+2] = 0;
3896 StandardStreamTypes StandardStreamType,
3900 FIXME(
"%p %d %d %p\n", iface, StandardStreamType, Unicode, ppts);
3907 static const WCHAR fmtW[] = {
'%',
'd',
'.',
'%',
'd',
'.',
'%',
'd',
'.',
'%',
'd',0};
PRTL_UNICODE_STRING_BUFFER Path
HRESULT get_typeinfo(enum type_id tid, ITypeInfo **ret)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR nameW[]
_Inout_ PVCB _In_ BOOLEAN Force
BOOL WINAPI IsTextUnicode(IN CONST VOID *lpv, IN INT iSize, IN OUT LPINT lpiResult OPTIONAL)
static const WCHAR rootW[]
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
#define WideCharToMultiByte
#define MultiByteToWideChar
#define ERROR_ACCESS_DENIED
static const WCHAR *const ext[]
static const WCHAR version[]
BOOL WINAPI CopyFileW(IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN BOOL bFailIfExists)
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
BOOL WINAPI CreateDirectoryW(IN LPCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
BOOL WINAPI RemoveDirectoryW(IN LPCWSTR lpPathName)
BOOL WINAPI GetDiskFreeSpaceExW(IN LPCWSTR lpDirectoryName OPTIONAL, OUT PULARGE_INTEGER lpFreeBytesAvailableToCaller, OUT PULARGE_INTEGER lpTotalNumberOfBytes, OUT PULARGE_INTEGER lpTotalNumberOfFreeBytes)
UINT WINAPI GetDriveTypeW(IN LPCWSTR lpRootPathName)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
BOOL WINAPI SetFileAttributesW(LPCWSTR lpFileName, DWORD dwFileAttributes)
BOOL WINAPI GetFileAttributesExW(LPCWSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation)
BOOL WINAPI SetFilePointerEx(HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod)
HANDLE WINAPI FindFirstFileW(IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
BOOL WINAPI GetVolumeInformationW(IN LPCWSTR lpRootPathName, IN LPWSTR lpVolumeNameBuffer, IN DWORD nVolumeNameSize, OUT LPDWORD lpVolumeSerialNumber OPTIONAL, OUT LPDWORD lpMaximumComponentLength OPTIONAL, OUT LPDWORD lpFileSystemFlags OPTIONAL, OUT LPWSTR lpFileSystemNameBuffer OPTIONAL, IN DWORD nFileSystemNameSize)
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
BOOL WINAPI FileTimeToLocalFileTime(IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime)
HRESULT WINAPI VarR8FromUI8(ULONG64 ullIn, double *pDblOut)
static HRESULT WINAPI drivecoll_QueryInterface(IDriveCollection *iface, REFIID riid, void **obj)
static HRESULT WINAPI file_Invoke(IFile *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI filesys_CopyFolder(IFileSystem3 *iface, BSTR Source, BSTR Destination, VARIANT_BOOL OverWriteFiles)
static HRESULT delete_folder(const WCHAR *folder, DWORD folder_len, VARIANT_BOOL force)
static HRESULT WINAPI folder_get_DateLastModified(IFolder *iface, DATE *date)
static HRESULT WINAPI filesys_get_Drives(IFileSystem3 *iface, IDriveCollection **ppdrives)
static BOOL is_file_data(const WIN32_FIND_DATAW *data)
static HRESULT WINAPI folder_get_Type(IFolder *iface, BSTR *type)
static HRESULT WINAPI folder_get_Size(IFolder *iface, VARIANT *size)
static HRESULT WINAPI foldercoll_enumvariant_Next(IEnumVARIANT *iface, ULONG celt, VARIANT *var, ULONG *fetched)
static HRESULT WINAPI folder_put_Name(IFolder *iface, BSTR name)
static BSTR get_full_path(BSTR path, const WIN32_FIND_DATAW *data)
static ULONG WINAPI foldercoll_AddRef(IFolderCollection *iface)
static HRESULT WINAPI file_Delete(IFile *iface, VARIANT_BOOL Force)
static HRESULT create_foldercoll(BSTR path, IFolderCollection **folders)
static HRESULT WINAPI filecoll_enumvariant_Reset(IEnumVARIANT *iface)
static HRESULT WINAPI filesys_DriveExists(IFileSystem3 *iface, BSTR DriveSpec, VARIANT_BOOL *pfExists)
static HRESULT WINAPI folder_get_ShortName(IFolder *iface, BSTR *name)
static HRESULT create_drivecoll_enum(struct drivecollection *, IUnknown **)
static const IEnumVARIANTVtbl filecollenumvariantvtbl
static HRESULT WINAPI drivecoll_GetTypeInfo(IDriveCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI drive_get_FreeSpace(IDrive *iface, VARIANT *v)
static HRESULT WINAPI foldercoll_GetTypeInfoCount(IFolderCollection *iface, UINT *pctinfo)
static HRESULT WINAPI textstream_get_Line(ITextStream *iface, LONG *line)
static HRESULT WINAPI folder_get_Name(IFolder *iface, BSTR *name)
static HRESULT WINAPI folder_get_IsRootFolder(IFolder *iface, VARIANT_BOOL *isroot)
static const WCHAR utf16bom
static BOOL is_dir_data(const WIN32_FIND_DATAW *data)
static const IDriveCollectionVtbl drivecollectionvtbl
static ULONG WINAPI filecoll_Release(IFileCollection *iface)
static HRESULT WINAPI file_get_ShortName(IFile *iface, BSTR *pbstrName)
static HRESULT WINAPI textstream_GetIDsOfNames(ITextStream *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static const IFileCollectionVtbl filecollectionvtbl
static const IFileVtbl file_vtbl
static HRESULT WINAPI file_GetTypeInfoCount(IFile *iface, UINT *pctinfo)
static HRESULT WINAPI folder_CreateTextFile(IFolder *iface, BSTR filename, VARIANT_BOOL overwrite, VARIANT_BOOL unicode, ITextStream **stream)
static HRESULT WINAPI filecoll_enumvariant_Clone(IEnumVARIANT *iface, IEnumVARIANT **pclone)
static HRESULT WINAPI filesys_GetFile(IFileSystem3 *iface, BSTR FilePath, IFile **ppfile)
static HRESULT WINAPI file_get_Attributes(IFile *iface, FileAttribute *pfa)
static HRESULT WINAPI file_get_ParentFolder(IFile *iface, IFolder **ppfolder)
static HRESULT WINAPI folder_get_SubFolders(IFolder *iface, IFolderCollection **folders)
static HRESULT create_folder(const WCHAR *, IFolder **)
static HRESULT WINAPI file_get_ShortPath(IFile *iface, BSTR *pbstrPath)
static HRESULT create_filecoll(BSTR path, IFileCollection **files)
static HRESULT WINAPI filesys_GetTypeInfoCount(IFileSystem3 *iface, UINT *pctinfo)
static HRESULT WINAPI foldercoll_enumvariant_Reset(IEnumVARIANT *iface)
static HRESULT WINAPI folder_QueryInterface(IFolder *iface, REFIID riid, void **obj)
static HRESULT WINAPI filesys_GetDrive(IFileSystem3 *iface, BSTR DriveSpec, IDrive **ppdrive)
static HRESULT WINAPI filecoll_enumvariant_Skip(IEnumVARIANT *iface, ULONG celt)
static HRESULT WINAPI foldercoll_get_Item(IFolderCollection *iface, VARIANT key, IFolder **folder)
static HRESULT WINAPI filesys_GetDriveName(IFileSystem3 *iface, BSTR path, BSTR *drive)
static HRESULT WINAPI folder_Delete(IFolder *iface, VARIANT_BOOL force)
static HRESULT WINAPI textstream_GetTypeInfoCount(ITextStream *iface, UINT *pctinfo)
static HRESULT WINAPI drivecoll_Invoke(IDriveCollection *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI drivecoll_get_Count(IDriveCollection *iface, LONG *count)
static ULONG WINAPI file_AddRef(IFile *iface)
static HRESULT WINAPI drivecoll_GetTypeInfoCount(IDriveCollection *iface, UINT *pctinfo)
static HRESULT WINAPI textstream_Skip(ITextStream *iface, LONG count)
static const IEnumVARIANTVtbl foldercollenumvariantvtbl
static struct drive * impl_from_IDrive(IDrive *iface)
static HRESULT WINAPI textstream_GetTypeInfo(ITextStream *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT find_next_drive(struct enumvariant *penum)
static struct drivecollection * impl_from_IDriveCollection(IDriveCollection *iface)
static HRESULT WINAPI drive_get_SerialNumber(IDrive *iface, LONG *serial)
static DWORD get_parent_folder_name(const WCHAR *path, DWORD len)
static struct filecollection * impl_from_IFileCollection(IFileCollection *iface)
static HRESULT WINAPI file_get_DateCreated(IFile *iface, DATE *pdate)
static HRESULT WINAPI drivecoll_enumvariant_Clone(IEnumVARIANT *iface, IEnumVARIANT **pclone)
static HRESULT WINAPI filesys_MoveFile(IFileSystem3 *iface, BSTR Source, BSTR Destination)
static HRESULT WINAPI filesys_QueryInterface(IFileSystem3 *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI file_OpenAsTextStream(IFile *iface, IOMode mode, Tristate format, ITextStream **stream)
static HRESULT WINAPI filesys_CreateFolder(IFileSystem3 *iface, BSTR path, IFolder **folder)
static HRESULT get_date_from_filetime(const FILETIME *ft, DATE *date)
static HRESULT WINAPI filesys_OpenTextFile(IFileSystem3 *iface, BSTR filename, IOMode mode, VARIANT_BOOL create, Tristate format, ITextStream **stream)
static HRESULT WINAPI file_get_Drive(IFile *iface, IDrive **ppdrive)
static HRESULT WINAPI foldercoll_get_Count(IFolderCollection *iface, LONG *count)
static struct file * impl_from_IFile(IFile *iface)
static HRESULT WINAPI filesys_GetIDsOfNames(IFileSystem3 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI file_Move(IFile *iface, BSTR Destination)
static HRESULT textstream_read(struct textstream *stream, LONG toread, BOOL bof, BSTR *text)
static HRESULT WINAPI filesys_DeleteFile(IFileSystem3 *iface, BSTR FileSpec, VARIANT_BOOL Force)
static HRESULT WINAPI filecoll_Invoke(IFileCollection *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI filecoll_GetIDsOfNames(IFileCollection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI textstream_get_AtEndOfStream(ITextStream *iface, VARIANT_BOOL *eos)
static HRESULT WINAPI folder_Move(IFolder *iface, BSTR dest)
static HRESULT variant_from_largeint(const ULARGE_INTEGER *src, VARIANT *v)
static HRESULT WINAPI file_QueryInterface(IFile *iface, REFIID riid, void **obj)
static HRESULT WINAPI textstream_QueryInterface(ITextStream *iface, REFIID riid, void **obj)
static ULONG WINAPI drivecoll_Release(IDriveCollection *iface)
static const IDriveVtbl drivevtbl
static ULONG WINAPI folder_Release(IFolder *iface)
static HRESULT WINAPI folder_get_Path(IFolder *iface, BSTR *path)
static HRESULT WINAPI folder_put_Attributes(IFolder *iface, FileAttribute attr)
static HRESULT WINAPI drive_get_DriveLetter(IDrive *iface, BSTR *letter)
static HRESULT WINAPI drive_get_TotalSize(IDrive *iface, VARIANT *v)
static HRESULT WINAPI foldercoll_enumvariant_Clone(IEnumVARIANT *iface, IEnumVARIANT **pclone)
static ULONG WINAPI textstream_Release(ITextStream *iface)
static HRESULT WINAPI drive_get_DriveType(IDrive *iface, DriveTypeConst *type)
static HRESULT WINAPI textstream_ReadAll(ITextStream *iface, BSTR *text)
static HRESULT WINAPI folder_get_Attributes(IFolder *iface, FileAttribute *attr)
static HRESULT WINAPI textstream_ReadLine(ITextStream *iface, BSTR *text)
static HRESULT WINAPI file_put_Attributes(IFile *iface, FileAttribute pfa)
static HRESULT WINAPI drive_get_VolumeName(IDrive *iface, BSTR *name)
static const IFolderVtbl foldervtbl
static HRESULT WINAPI drivecoll_GetIDsOfNames(IDriveCollection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI filecoll_get_Count(IFileCollection *iface, LONG *count)
static HRESULT WINAPI drive_GetTypeInfoCount(IDrive *iface, UINT *pctinfo)
static HRESULT WINAPI drive_get_RootFolder(IDrive *iface, IFolder **folder)
static HRESULT WINAPI filesys_GetStandardStream(IFileSystem3 *iface, StandardStreamTypes StandardStreamType, VARIANT_BOOL Unicode, ITextStream **ppts)
static HRESULT WINAPI folder_get_ShortPath(IFolder *iface, BSTR *path)
static HRESULT WINAPI drivecoll_get__NewEnum(IDriveCollection *iface, IUnknown **ppenum)
static HRESULT WINAPI textstream_Write(ITextStream *iface, BSTR text)
static HRESULT WINAPI textstream_WriteLine(ITextStream *iface, BSTR text)
static HRESULT WINAPI file_get_Type(IFile *iface, BSTR *pbstrType)
static HRESULT WINAPI drivecoll_get_Item(IDriveCollection *iface, VARIANT key, IDrive **drive)
static HRESULT WINAPI filesys_GetAbsolutePathName(IFileSystem3 *iface, BSTR Path, BSTR *pbstrResult)
static HRESULT WINAPI textstream_get_Column(ITextStream *iface, LONG *column)
static HRESULT WINAPI filesys_GetTempName(IFileSystem3 *iface, BSTR *pbstrResult)
static HRESULT WINAPI filesys_GetSpecialFolder(IFileSystem3 *iface, SpecialFolderConst SpecialFolder, IFolder **folder)
static HRESULT WINAPI filesys_GetParentFolderName(IFileSystem3 *iface, BSTR Path, BSTR *pbstrResult)
static HRESULT WINAPI drive_put_VolumeName(IDrive *iface, BSTR name)
static HRESULT WINAPI filesys_GetFileName(IFileSystem3 *iface, BSTR Path, BSTR *pbstrResult)
static HRESULT WINAPI file_get_Path(IFile *iface, BSTR *path)
static ULONG WINAPI textstream_AddRef(ITextStream *iface)
static HRESULT WINAPI filesys_CopyFile(IFileSystem3 *iface, BSTR Source, BSTR Destination, VARIANT_BOOL OverWriteFiles)
static HRESULT create_drive(WCHAR letter, IDrive **drive)
static HRESULT WINAPI filecoll_get_Item(IFileCollection *iface, VARIANT Key, IFile **file)
static ULONG WINAPI folder_AddRef(IFolder *iface)
static HRESULT WINAPI filesys_GetFileVersion(IFileSystem3 *iface, BSTR name, BSTR *version)
static HRESULT WINAPI foldercoll_QueryInterface(IFolderCollection *iface, REFIID riid, void **obj)
static HRESULT WINAPI drive_GetTypeInfo(IDrive *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI file_get_Name(IFile *iface, BSTR *name)
static HRESULT WINAPI filecoll_get__NewEnum(IFileCollection *iface, IUnknown **ppenum)
static const IFolderCollectionVtbl foldercollvtbl
static HRESULT WINAPI drivecoll_enumvariant_Skip(IEnumVARIANT *iface, ULONG celt)
static HRESULT WINAPI enumvariant_QueryInterface(IEnumVARIANT *iface, REFIID riid, void **obj)
static HRESULT WINAPI foldercoll_GetIDsOfNames(IFolderCollection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI drive_get_ShareName(IDrive *iface, BSTR *share_name)
static HRESULT WINAPI file_get_DateLastModified(IFile *iface, DATE *date)
static HRESULT WINAPI filecoll_GetTypeInfoCount(IFileCollection *iface, UINT *pctinfo)
static HRESULT WINAPI drive_get_AvailableSpace(IDrive *iface, VARIANT *v)
static HRESULT WINAPI filecoll_QueryInterface(IFileCollection *iface, REFIID riid, void **obj)
static HRESULT create_error(DWORD err)
static HRESULT copy_file(const WCHAR *source, DWORD source_len, const WCHAR *destination, DWORD destination_len, VARIANT_BOOL overwrite)
static HRESULT WINAPI folder_GetTypeInfoCount(IFolder *iface, UINT *pctinfo)
static HRESULT WINAPI textstream_SkipLine(ITextStream *iface)
static HRESULT WINAPI filesys_GetBaseName(IFileSystem3 *iface, BSTR Path, BSTR *pbstrResult)
static ULONG WINAPI foldercoll_Release(IFolderCollection *iface)
static HRESULT WINAPI filesys_DeleteFolder(IFileSystem3 *iface, BSTR FolderSpec, VARIANT_BOOL Force)
static BOOL textstream_check_iomode(struct textstream *This, enum iotype type)
static ULONG WINAPI filesys_Release(IFileSystem3 *iface)
static HRESULT textstream_writecrlf(struct textstream *stream)
static HRESULT WINAPI folder_get_Files(IFolder *iface, IFileCollection **files)
static const IEnumVARIANTVtbl drivecollenumvariantvtbl
static const struct IFileSystem3Vtbl filesys_vtbl
static ULONG WINAPI enumvariant_AddRef(IEnumVARIANT *iface)
static HRESULT WINAPI filesys_MoveFolder(IFileSystem3 *iface, BSTR Source, BSTR Destination)
static HRESULT WINAPI filecoll_enumvariant_Next(IEnumVARIANT *iface, ULONG celt, VARIANT *var, ULONG *fetched)
static HRESULT WINAPI foldercoll_enumvariant_Skip(IEnumVARIANT *iface, ULONG celt)
static HRESULT WINAPI textstream_WriteBlankLines(ITextStream *iface, LONG lines)
static HRESULT WINAPI file_Copy(IFile *iface, BSTR Destination, VARIANT_BOOL OverWriteFiles)
static HRESULT WINAPI folder_get_ParentFolder(IFolder *iface, IFolder **parent)
static HRESULT WINAPI filesys_GetFolder(IFileSystem3 *iface, BSTR FolderPath, IFolder **folder)
static HRESULT WINAPI textstream_Read(ITextStream *iface, LONG len, BSTR *text)
static HRESULT WINAPI foldercoll_get__NewEnum(IFolderCollection *iface, IUnknown **newenum)
static HANDLE start_enumeration(const WCHAR *path, WIN32_FIND_DATAW *data, BOOL file)
static HRESULT WINAPI file_get_Size(IFile *iface, VARIANT *pvarSize)
static ULONG WINAPI drive_Release(IDrive *iface)
static HRESULT create_foldercoll_enum(struct foldercollection *, IUnknown **)
static void get_versionstring(VS_FIXEDFILEINFO *info, WCHAR *ver)
static ULONG WINAPI file_Release(IFile *iface)
static HRESULT WINAPI folder_get_Drive(IFolder *iface, IDrive **drive)
static HRESULT WINAPI filesys_FolderExists(IFileSystem3 *iface, BSTR path, VARIANT_BOOL *ret)
static HRESULT WINAPI foldercoll_Add(IFolderCollection *iface, BSTR name, IFolder **folder)
static HRESULT create_drivecoll(IDriveCollection **drives)
static HRESULT WINAPI folder_get_DateLastAccessed(IFolder *iface, DATE *date)
static HRESULT WINAPI drive_Invoke(IDrive *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static struct filesystem * impl_from_IFileSystem3(IFileSystem3 *iface)
static ULONG WINAPI drive_AddRef(IDrive *iface)
static HRESULT WINAPI textstream_Close(ITextStream *iface)
static HRESULT WINAPI filesys_GetExtensionName(IFileSystem3 *iface, BSTR path, BSTR *ext)
static ULONG WINAPI drivecoll_enumvariant_Release(IEnumVARIANT *iface)
static HRESULT WINAPI drive_get_FileSystem(IDrive *iface, BSTR *fs)
static HRESULT WINAPI file_get_DateLastAccessed(IFile *iface, DATE *pdate)
static HRESULT WINAPI drivecoll_enumvariant_Next(IEnumVARIANT *iface, ULONG celt, VARIANT *var, ULONG *fetched)
static HRESULT WINAPI textstream_Invoke(ITextStream *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI drive_get_IsReady(IDrive *iface, VARIANT_BOOL *ready)
static HRESULT WINAPI folder_Copy(IFolder *iface, BSTR dest, VARIANT_BOOL overwrite)
static HRESULT WINAPI drive_QueryInterface(IDrive *iface, REFIID riid, void **obj)
static HRESULT WINAPI filesys_GetTypeInfo(IFileSystem3 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI filesys_CreateTextFile(IFileSystem3 *iface, BSTR filename, VARIANT_BOOL overwrite, VARIANT_BOOL unicode, ITextStream **stream)
static struct textstream * impl_from_ITextStream(ITextStream *iface)
static HRESULT WINAPI folder_GetTypeInfo(IFolder *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static struct foldercollection * impl_from_IFolderCollection(IFolderCollection *iface)
static HRESULT WINAPI folder_get_DateCreated(IFolder *iface, DATE *date)
static ULONG WINAPI foldercoll_enumvariant_Release(IEnumVARIANT *iface)
static struct folder * impl_from_IFolder(IFolder *iface)
static HRESULT WINAPI filesys_BuildPath(IFileSystem3 *iface, BSTR Path, BSTR Name, BSTR *Result)
static HRESULT WINAPI textstream_get_AtEndOfLine(ITextStream *iface, VARIANT_BOOL *eol)
static const ITextStreamVtbl textstreamvtbl
static ULONG WINAPI filesys_AddRef(IFileSystem3 *iface)
static ULONG WINAPI filecoll_AddRef(IFileCollection *iface)
static HRESULT create_textstream(const WCHAR *filename, DWORD disposition, IOMode mode, Tristate format, ITextStream **ret)
static HRESULT WINAPI folder_GetIDsOfNames(IFolder *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI file_GetTypeInfo(IFile *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI file_put_Name(IFile *iface, BSTR pbstrName)
static HRESULT WINAPI filecoll_GetTypeInfo(IFileCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI foldercoll_Invoke(IFolderCollection *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI folder_Invoke(IFolder *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT textstream_writestr(struct textstream *stream, BSTR text)
static ULONG WINAPI filecoll_enumvariant_Release(IEnumVARIANT *iface)
static HRESULT WINAPI foldercoll_GetTypeInfo(IFolderCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI drive_GetIDsOfNames(IDrive *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT copy_folder(const WCHAR *source, DWORD source_len, const WCHAR *destination, DWORD destination_len, VARIANT_BOOL overwrite)
HRESULT WINAPI FileSystem_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
static HRESULT WINAPI filesys_Invoke(IFileSystem3 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static HRESULT WINAPI file_GetIDsOfNames(IFile *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI drivecoll_enumvariant_Reset(IEnumVARIANT *iface)
static struct enumvariant * impl_from_IEnumVARIANT(IEnumVARIANT *iface)
static HRESULT WINAPI drive_get_Path(IDrive *iface, BSTR *path)
static HRESULT create_filecoll_enum(struct filecollection *, IUnknown **)
static HRESULT WINAPI filesys_FileExists(IFileSystem3 *iface, BSTR path, VARIANT_BOOL *ret)
static ULONG WINAPI drivecoll_AddRef(IDriveCollection *iface)
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
static unsigned char buff[32768]
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLint GLboolean GLint GLenum access
GLboolean GLboolean GLboolean GLboolean a
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
unsigned long long DWORDLONG
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
#define ERROR_ALREADY_EXISTS
#define FILE_ATTRIBUTE_DEVICE
#define ERROR_FILE_NOT_FOUND
const IID IID_IObjectWithSite
#define create_file(name, size)
static const struct access_res create[16]
static const WCHAR dotdotW[]
static const WCHAR dotW[]
static ICollection collection
static VARIANTARG static DISPID
static const WCHAR crlfW[]
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
#define FILE_ATTRIBUTE_READONLY
#define FILE_ATTRIBUTE_COMPRESSED
#define FILE_ATTRIBUTE_HIDDEN
#define FILE_ATTRIBUTE_SYSTEM
#define FILE_ATTRIBUTE_ARCHIVE
#define FILE_ATTRIBUTE_DIRECTORY
#define FILE_ATTRIBUTE_REPARSE_POINT
UINT WINAPI SysStringByteLen(BSTR str)
BSTR WINAPI SysAllocString(LPCOLESTR str)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define CTL_E_BADFILEMODE
#define CTL_E_PATHNOTFOUND
#define CTL_E_FILENOTFOUND
#define CTL_E_FILEALREADYEXISTS
#define CTL_E_DEVICEUNAVAILABLE
#define CTL_E_PERMISSIONDENIED
const GUID IID_IProvideClassInfo
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
void init_classinfo(const GUID *guid, IUnknown *outer, struct provideclassinfo *classinfo)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
Retrieval of special shell folder.
IDriveCollection IDriveCollection_iface
struct enumdata::@548::@551 drivecoll
struct drivecollection * coll
struct enumdata::@548::@550 filecoll
struct foldercollection * coll
struct enumdata::@548::@549 foldercoll
struct filecollection * coll
IEnumVARIANT IEnumVARIANT_iface
IFileCollection IFileCollection_iface
IFileSystem3 IFileSystem3_iface
struct provideclassinfo classinfo
IFolderCollection IFolderCollection_iface
ITextStream ITextStream_iface
#define CONTAINING_RECORD(address, type, field)
INT WINAPI SystemTimeToVariantTime(LPSYSTEMTIME lpSt, double *pDateOut)
#define INVALID_FILE_ATTRIBUTES
#define DRIVE_NO_ROOT_DIR
DWORD WINAPI GetLastError(void)
DWORD WINAPI GetLogicalDrives(void)
_In_ DWORD _Out_ _In_ WORD wFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
#define ERROR_PATH_NOT_FOUND
#define ERROR_FILE_EXISTS
#define HRESULT_FROM_WIN32(x)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO