ReactOS 0.4.17-dev-357-ga8f14ff
istream.c File Reference
#include <stdarg.h>
#include <string.h>
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "winnls.h"
#include "shlwapi.h"
#include "wine/debug.h"
Include dependency graph for istream.c:

Go to the source code of this file.

Macros

#define COBJMACROS
 
#define NO_SHLWAPI_REG
 
#define NO_SHLWAPI_PATH
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (shell)
 
HRESULT WINAPI SHIStream_Read (IStream *lpStream, LPVOID lpvDest, ULONG ulSize)
 
BOOL WINAPI SHIsEmptyStream (IStream *lpStream)
 
HRESULT WINAPI SHIStream_Write (IStream *lpStream, LPCVOID lpvSrc, ULONG ulSize)
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 23 of file istream.c.

◆ NO_SHLWAPI_PATH

#define NO_SHLWAPI_PATH

Definition at line 29 of file istream.c.

◆ NO_SHLWAPI_REG

#define NO_SHLWAPI_REG

Definition at line 28 of file istream.c.

Function Documentation

◆ SHIsEmptyStream()

BOOL WINAPI SHIsEmptyStream ( IStream lpStream)

Definition at line 78 of file istream.c.

79{
80 STATSTG statstg;
81 BOOL bRet = TRUE;
82
83 TRACE("(%p)\n", lpStream);
84
85 memset(&statstg, 0, sizeof(statstg));
86
87 if(SUCCEEDED(IStream_Stat(lpStream, &statstg, 1)))
88 {
89 if(statstg.cbSize.QuadPart)
90 bRet = FALSE; /* Non-Zero */
91 }
92 else
93 {
94 DWORD dummy, read_len;
95
96 /* Try to read from the stream */
97 if (SUCCEEDED(IStream_Read(lpStream, &dummy, sizeof(dummy), &read_len)) && read_len == sizeof(dummy))
98 {
100 zero.QuadPart = 0;
101
102 IStream_Seek(lpStream, zero, 0, NULL);
103 bRet = FALSE; /* Non-Zero */
104 }
105 }
106 return bRet;
107}
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define memset(x, y, z)
Definition: compat.h:39
int zero
Definition: sehframes.cpp:29
#define TRACE(s)
Definition: solgame.cpp:4

◆ SHIStream_Read()

HRESULT WINAPI SHIStream_Read ( IStream lpStream,
LPVOID  lpvDest,
ULONG  ulSize 
)

Definition at line 52 of file istream.c.

53{
54 ULONG ulRead;
55 HRESULT hRet;
56
57 TRACE("(%p,%p,%d)\n", lpStream, lpvDest, ulSize);
58
59 hRet = IStream_Read(lpStream, lpvDest, ulSize, &ulRead);
60
61 if (SUCCEEDED(hRet) && ulRead != ulSize)
62 hRet = E_FAIL;
63 return hRet;
64}
#define E_FAIL
Definition: ddrawi.h:102
uint32_t ULONG
Definition: typedefs.h:59

◆ SHIStream_Write()

HRESULT WINAPI SHIStream_Write ( IStream lpStream,
LPCVOID  lpvSrc,
ULONG  ulSize 
)

Definition at line 123 of file istream.c.

124{
125 ULONG ulWritten;
126 HRESULT hRet;
127
128 TRACE("(%p,%p,%d)\n", lpStream, lpvSrc, ulSize);
129
130 hRet = IStream_Write(lpStream, lpvSrc, ulSize, &ulWritten);
131
132 if (SUCCEEDED(hRet) && ulWritten != ulSize)
133 hRet = E_FAIL;
134
135 return hRet;
136}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( shell  )