36 return IUnknown_Release(unk);
46 hr = INetFwPolicy2_QueryInterface(policy2, &IID_INetFwRules, (
void**)&rules);
49 hr = INetFwPolicy2_get_Rules(policy2, &rules);
52 hr = INetFwPolicy2_get_Rules(policy2, &rules2);
54 ok(rules == rules2,
"Different pointers\n");
56 hr = INetFwPolicy2_get_ServiceRestriction(policy2, &restriction);
62 hr = INetFwServiceRestriction_get_Rules(restriction, &rules3);
64 ok(rules != rules3,
"same pointers\n");
67 INetFwRules_Release(rules3);
68 INetFwServiceRestriction_Release(restriction);
72 hr = INetFwRules_get__NewEnum(rules,
NULL);
76 INetFwRules_Release(rules);
77 INetFwRules_Release(rules2);
88 &IID_INetFwMgr, (
void**)&manager);
89 ok(
hr ==
S_OK,
"NetFwMgr create failed: %08lx\n",
hr);
91 hr = INetFwMgr_QueryInterface(manager, &IID_INetFwPolicy, (
void**)&
policy);
94 hr = INetFwMgr_QueryInterface(manager, &IID_INetFwPolicy2, (
void**)&policy2);
97 hr = INetFwMgr_get_LocalPolicy(manager, &
policy);
100 hr = INetFwPolicy_QueryInterface(
policy, &IID_INetFwPolicy2, (
void**)&policy2);
103 INetFwPolicy_Release(
policy);
106 &IID_INetFwPolicy2, (
void**)&policy2);
111 INetFwPolicy2_Release(policy2);
114 win_skip(
"NetFwPolicy2 object is not supported: %08lx\n",
hr);
116 INetFwMgr_Release(manager);
131 hr =
CoCreateInstance(&CLSID_NetFwAuthorizedApplication,
NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
132 &IID_INetFwAuthorizedApplication, (
void**)&app);
138 hr = INetFwAuthorizedApplication_get_ProcessImageFileName(app,
NULL);
141 hr = INetFwAuthorizedApplication_get_ProcessImageFileName(app, &bstr);
145 hr = INetFwAuthorizedApplication_put_ProcessImageFileName(app,
NULL);
148 hr = INetFwAuthorizedApplication_put_ProcessImageFileName(app,
empty);
152 hr = INetFwAuthorizedApplication_put_ProcessImageFileName(app, bstr);
160 sz =
sizeof(netpath);
164 info->lpUniversalName = netpath +
sizeof(*info)/
sizeof(
WCHAR);
168 hr = INetFwAuthorizedApplication_get_ProcessImageFileName(app, &bstr);
170 ok(!
lstrcmpW(bstr,
info->lpUniversalName),
"expected %s, got %s\n",
174 INetFwAuthorizedApplication_Release(app);
182 ULONG refcount, refcount2;
191 hr = IStaticPortMappingCollection_get__NewEnum(ports, &unk);
192 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
194 hr = IUnknown_QueryInterface(unk, &IID_IEnumVARIANT, (
void **)&enum_ports);
195 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
196 IUnknown_Release( unk );
199 ok(refcount2 == refcount,
"Got unexpected refcount %lu, refcount2 %lu.\n", refcount, refcount2);
201 hr = IEnumVARIANT_Reset(enum_ports);
202 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
205 hr = IStaticPortMappingCollection_get_Count(ports, &
count);
206 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
208 hr = IStaticPortMappingCollection_get_Item(ports, 12345, (
BSTR)
L"UDP", &
pm);
212 IStaticPortMapping_Release(
pm);
219 hr = IStaticPortMappingCollection_Add(ports, 12345, (
BSTR)
L"udp", 12345, (
BSTR)
L"1.2.3.4",
220 VARIANT_TRUE, (
BSTR)
L"wine_test", &
pm);
222 hr = IStaticPortMappingCollection_Add(ports, 12345, (
BSTR)
L"UDP", 12345, (
BSTR)
L"1.2.3.4",
223 VARIANT_TRUE, (
BSTR)
L"wine_test", &
pm);
224 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
226 hr = IStaticPortMappingCollection_get_Count(ports, &count2);
227 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
230 hr = IStaticPortMappingCollection_get_Item(ports, 12345,
NULL, &
pm);
233 hr = IStaticPortMappingCollection_get_Item(ports, 12345, (
BSTR)
L"UDP",
NULL);
236 hr = IStaticPortMappingCollection_get_Item(ports, 12345, (
BSTR)
L"udp", &
pm);
239 hr = IStaticPortMappingCollection_get_Item(ports, -1, (
BSTR)
L"UDP", &
pm);
242 hr = IStaticPortMappingCollection_get_Item(ports, 65536, (
BSTR)
L"UDP", &
pm);
245 hr = IStaticPortMappingCollection_get_Item(ports, 12346, (
BSTR)
L"UDP", &
pm);
248 hr = IEnumVARIANT_Reset(enum_ports);
249 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
251 for (
i = 0;
i < count2; ++
i)
255 fetched = 0xdeadbeef;
256 hr = IEnumVARIANT_Next(enum_ports, 1, &
var, &fetched);
257 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
258 ok(fetched == 1,
"Got unexpected fetched %lu.\n", fetched);
261 hr = IDispatch_QueryInterface(
V_DISPATCH(&
var), &IID_IStaticPortMapping, (
void **)&
pm);
262 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
265 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
266 external_port = 0xdeadbeef;
267 hr = IStaticPortMapping_get_ExternalPort(
pm, &external_port);
268 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
272 hr = IStaticPortMappingCollection_get_Item(ports, external_port,
protocol, &
pm2);
273 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
274 ok(
pm2 !=
pm,
"Got same interface.\n");
276 IStaticPortMapping_Release(
pm);
277 IStaticPortMapping_Release(
pm2);
283 hr = IEnumVARIANT_Next(enum_ports, 1, &
var, &fetched);
286 hr = IStaticPortMappingCollection_Remove(ports, 12345, (
BSTR)
L"UDP");
287 ok(
hr ==
S_OK,
"Got unexpected hr %#lx.\n",
hr);
289 IEnumVARIANT_Release(enum_ports);
299 ULONG refcount, refcount2;
302 hr =
CoCreateInstance(&CLSID_UPnPNAT,
NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, &IID_IUPnPNAT, (
void**)&nat);
309 hr = IUPnPNAT_get_StaticPortMappingCollection(nat, &static_ports);
312 if(
hr ==
S_OK && static_ports)
315 ok(refcount2 == refcount,
"Got unexpected refcount %lu, refcount2 %lu.\n", refcount, refcount2);
317 IStaticPortMappingCollection_Release(static_ports);
321 skip(
"UPNP gateway not found.\n" );
323 hr = IUPnPNAT_get_DynamicPortMappingCollection(nat, &dync_ports);
325 if(
hr ==
S_OK && dync_ports)
326 IDynamicPortMappingCollection_Release(dync_ports);
328 hr = IUPnPNAT_get_NATEventManager(nat, &manager);
331 INATEventManager_Release(manager);
333 IUPnPNAT_Release(nat);
345 &IID_INetFwMgr, (
void**)&manager);
348 win_skip(
"NetFwMgr object is not supported: %08lx\n",
hr);
353 INetFwMgr_Release(manager);
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
#define ERROR_NOT_ENOUGH_MEMORY
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
static const WCHAR empty[1]
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
DWORD WINAPI GetLongPathNameW(IN LPCWSTR lpszShortPath, OUT LPWSTR lpszLongPath, IN DWORD cchBuffer)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
GLuint GLuint GLsizei count
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
#define ERROR_FILE_NOT_FOUND
static ULONG get_refcount(IUnknown *unk)
static void test_IUPnPNAT(void)
static void test_policy2_rules(INetFwPolicy2 *policy2)
static void test_NetFwAuthorizedApplication(void)
static void test_static_port_mapping_collection(IStaticPortMappingCollection *ports)
static void test_interfaces(void)
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IProvideClassInfo
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
void WINAPI VariantInit(VARIANTARG *pVarg)
DWORD WINAPI GetLastError(void)
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define ERROR_PATH_NOT_FOUND
#define UNIVERSAL_NAME_INFO_LEVEL
DWORD WINAPI WNetGetUniversalNameW(LPCWSTR lpLocalPath, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpBufferSize)