31#define NO_SHLWAPI_PATH
33#define NO_SHLWAPI_STREAM
34#define NO_SHLWAPI_USER
71 TRACE(
"(%p,%p,%08x)\n", lpAttr, lpSec, p3);
75 if (!lpSec || !lpAttr)
144 TRACE(
"(%p)->(IID_IUnknown %p)\n",
This, ppvObj);
146 IUnknown_AddRef((
IUnknown*)*ppvObj);
201 TRACE(
"(%p, %p)\n", lprefcount, lppUnknown);
203 if (!lprefcount || !lppUnknown)
208 This->ref = lprefcount;
211 *lppUnknown = &
This->IUnknown_iface;
212 TRACE(
"=> returning S_OK with %p\n",
This);
230 TRACE(
"(%p)\n", lppUnknown);
240 IUnknown_AddRef(*lppUnknown);
258 TRACE(
"(%p)\n", lpUnknown);
281 FIXME(
"() - stub!\n");
296 TRACE(
"(%p)\n", pTi);
328 IUnknown_Release(ti.
refIE);
405 pfnThreadProc(
pData);
415 IUnknown_Release(ti.
refIE);
436 TRACE(
"(%p)\n", hSem);
457 TRACE(
"(%p)\n", hSem);
459 return dwOldCount + 1;
475 DWORD dwOldCount = 0;
477 TRACE(
"(%p)\n", hSem);
481 return dwOldCount - 1;
491 static const WCHAR szPrefix[] = {
's',
'h',
'e',
'l',
'l',
'.',
'\0' };
492 const int iPrefixLen = 6;
494 const int iBuffLen =
sizeof(szBuff)/
sizeof(
WCHAR);
502 memcpy(szBuff, szPrefix, (iPrefixLen + 1) *
sizeof(
WCHAR));
504 StrCpyNW(szBuff + iPrefixLen, lpszName, iBuffLen - iPrefixLen);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void shell(int argc, const char *argv[])
BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR pSecurityDescriptor, DWORD dwRevision)
struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
#define HeapFree(x, y, z)
#define MultiByteToWideChar
LPVOID WINAPI TlsGetValue(IN DWORD Index)
BOOL WINAPI TlsSetValue(IN DWORD Index, IN LPVOID Value)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
LPWSTR WINAPI StrCpyNW(LPWSTR dst, LPCWSTR src, int count)
HANDLE WINAPI SHGlobalCounterCreateNamedW(LPCWSTR lpszName, DWORD iInitial)
HRESULT WINAPI SHReleaseThreadRef(void)
static ULONG WINAPI threadref_Release(IUnknown *iface)
static DWORD WINAPI SHLWAPI_ThreadWrapper(PVOID pTi)
BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc, VOID *pData, DWORD dwFlags, LPTHREAD_START_ROUTINE pfnCallback)
static threadref * impl_from_IUnknown(IUnknown *iface)
static ULONG WINAPI threadref_AddRef(IUnknown *iface)
HANDLE WINAPI SHGlobalCounterCreate(REFGUID guid)
LPSECURITY_ATTRIBUTES WINAPI CreateAllAccessSecurityAttributes(LPSECURITY_ATTRIBUTES lpAttr, PSECURITY_DESCRIPTOR lpSec, DWORD p3)
LONG WINAPI SHGlobalCounterGetValue(HANDLE hSem)
HRESULT WINAPI SHCreateThreadRef(LONG *lprefcount, IUnknown **lppUnknown)
HRESULT WINAPI SHSetThreadRef(IUnknown *lpUnknown)
LONG WINAPI SHGlobalCounterIncrement(HANDLE hSem)
DWORD SHLWAPI_ThreadRef_index
struct tagSHLWAPI_THREAD_INFO * LPSHLWAPI_THREAD_INFO
DWORD WINAPI SHGlobalCounterDecrement(HANDLE hSem)
struct tagSHLWAPI_THREAD_INFO SHLWAPI_THREAD_INFO
INT WINAPI SHStringFromGUIDA(REFGUID, LPSTR, INT)
HRESULT WINAPI _SHGetInstanceExplorer(IUnknown **lppUnknown)
static HRESULT WINAPI threadref_QueryInterface(IUnknown *iface, REFIID riid, LPVOID *ppvObj)
HRESULT WINAPI SHGetThreadRef(IUnknown **lppUnknown)
static const IUnknownVtbl threadref_vt
HANDLE WINAPI SHGlobalCounterCreateNamedA(LPCSTR lpszName, DWORD iInitial)
#define memcpy(s1, s2, n)
@ COINIT_APARTMENTTHREADED
static const WCHAR szName[]
#define IsEqualGUID(rguid1, rguid2)
DWORD WINAPI GetVersion()
BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR pSecurityDescriptor, BOOL bDaclPresent, PACL pDacl, BOOL bDaclDefaulted)
HRESULT WINAPI SHGetInstanceExplorer(IUnknown **lpUnknown)
LPVOID lpSecurityDescriptor
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
HANDLE WINAPI DECLSPEC_HOTPATCH OpenSemaphoreW(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateSemaphoreW(IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes OPTIONAL, IN LONG lInitialCount, IN LONG lMaximumCount, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH ReleaseSemaphore(IN HANDLE hSemaphore, IN LONG lReleaseCount, IN LPLONG lpPreviousCount)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define CONTAINING_RECORD(address, type, field)
#define SEMAPHORE_MODIFY_STATE
#define TLS_OUT_OF_INDEXES
DWORD(WINAPI * LPTHREAD_START_ROUTINE)(LPVOID)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags