ReactOS 0.4.17-dev-414-ge848ce1
LockServer.cpp File Reference
#include "shelltest.h"
#include <undocshell.h>
Include dependency graph for LockServer.cpp:

Go to the source code of this file.

Functions

static HRESULT CALLBACK CreateInstanceStub (IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
 
static void test_LockServer (void)
 
 START_TEST (LockServer)
 

Function Documentation

◆ CreateInstanceStub()

static HRESULT CALLBACK CreateInstanceStub ( IUnknown pUnkOuter,
REFIID  riid,
LPVOID ppv 
)
static

Definition at line 11 of file LockServer.cpp.

12{
13 *ppv = NULL;
14 return E_NOTIMPL;
15}
#define E_NOTIMPL
Definition: ddrawi.h:99
#define NULL
Definition: types.h:112
REFIID LPVOID * ppv
Definition: atlbase.h:39

Referenced by test_LockServer().

◆ START_TEST()

START_TEST ( LockServer  )

Definition at line 63 of file LockServer.cpp.

64{
66}
static void test_LockServer(void)
Definition: LockServer.cpp:17

◆ test_LockServer()

static void test_LockServer ( void  )
static

Definition at line 17 of file LockServer.cpp.

18{
19 IClassFactory *pcf = NULL;
20 LONG refDll = 0;
21 HRESULT hr;
22
24 (LPVOID*)&pcf,
26 (LPDWORD)&refDll,
28 ok(hr == S_OK, "SHCreateDefClassObject failed: %08lx\n", hr);
29 ok(pcf != NULL, "pcf is NULL\n");
30 if (!pcf)
31 {
32 skip("pcf is NULL, skipping LockServer tests\n");
33 return;
34 }
35
36 ok(refDll == 1, "Expected refDll == 1 after init, got %ld\n", refDll);
37
38 hr = pcf->LockServer(TRUE);
39 ok(hr == S_OK, "LockServer() failed: %08lx\n", hr);
40 ok(refDll == 2, "Expected refDll == 2 after lock, got %ld\n", refDll);
41
42 hr = pcf->LockServer(FALSE);
43 ok(hr == S_OK, "LockServer() failed: %08lx\n", hr);
44 ok(refDll == 1, "Expected refDll == 1 after unlock, got %ld\n", refDll);
45
46 hr = pcf->LockServer(FALSE);
47 ok(hr == S_OK, "LockServer() failed: %08lx\n", hr);
48 ok(refDll >= 0, "refDll went negative after unlock when not locked: %ld\n", refDll);
49
50 hr = pcf->LockServer(TRUE);
51 ok(hr == S_OK, "LockServer() failed: %08lx\n", hr);
52 hr = pcf->LockServer(TRUE);
53 ok(hr == S_OK, "LockServer() failed: %08lx\n", hr);
54 hr = pcf->LockServer(FALSE);
55 ok(hr == S_OK, "LockServer() failed: %08lx\n", hr);
56 hr = pcf->LockServer(FALSE);
57 ok(hr == S_OK, "LockServer() failed: %08lx\n", hr);
58
59 pcf->Release();
60 ok(refDll == 0, "Expected refDll == 0 after Release, got %ld\n", refDll);
61}
static HRESULT CALLBACK CreateInstanceStub(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv)
Definition: LockServer.cpp:11
#define ok(value,...)
Definition: atltest.h:57
#define skip(...)
Definition: atltest.h:64
const GUID IID_IUnknown
const GUID IID_IClassFactory
HRESULT hr
Definition: delayimp.cpp:582
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
nsrefcnt Release()
#define S_OK
Definition: intsafe.h:52
long LONG
Definition: pedump.c:60
HRESULT WINAPI SHCreateDefClassObject(REFIID riid, LPVOID *ppv, LPFNCREATEINSTANCE lpfnCI, LPDWORD pcRefDll, REFIID riidInst)
Definition: shell32.cpp:254
uint32_t * LPDWORD
Definition: typedefs.h:59

Referenced by START_TEST().