ReactOS 0.4.16-dev-1946-g52006dd
inetcfgcomp_iface.c
Go to the documentation of this file.
1#include "precomp.h"
2
3typedef struct
4{
5 const INetCfgComponent *lpVtbl;
6 const INetCfgComponentBindings *lpVtblBindings;
7 const INetCfgComponentPrivate *lpVtblPrivate;
10 INetCfgComponentPropertyUi * pProperty;
11 INetCfg * pNCfg;
13
14typedef struct
15{
16 const IEnumNetCfgComponent * lpVtbl;
20 INetCfg * pNCfg;
22
24{
25 return (INetCfgComponentImpl*)((char *)iface - FIELD_OFFSET(INetCfgComponentImpl, lpVtblBindings));
26}
27
29{
30 return (INetCfgComponentImpl*)((char *)iface - FIELD_OFFSET(INetCfgComponentImpl, lpVtblPrivate));
31}
32
33/***************************************************************
34 * INetCfgComponentBindings
35 */
36
40 INetCfgComponentBindings *iface,
41 REFIID iid,
42 LPVOID *ppvObj)
43{
45 return INetCfgComponent_QueryInterface((INetCfgComponent*)This, iid, ppvObj);
46}
47
51 INetCfgComponentBindings *iface)
52{
54 return INetCfgComponent_AddRef((INetCfgComponent*)This);
55}
56
60 INetCfgComponentBindings *iface)
61{
63 return INetCfgComponent_Release((INetCfgComponent*)This);
64}
65
69 INetCfgComponentBindings *iface,
70 INetCfgComponent *pnccItem)
71{
72 return E_NOTIMPL;
73}
74
78 INetCfgComponentBindings *iface,
79 INetCfgComponent *pnccItem)
80{
81 return E_NOTIMPL;
82}
83
87 INetCfgComponentBindings *iface,
89 LPCWSTR pszwInterfaceName)
90{
91 return E_NOTIMPL;
92}
93
97 INetCfgComponentBindings *iface,
98 INetCfgComponent *pnccItem)
99{
100 INetCfgComponentImpl *pComponent;
101 PWSTR pszBindName, ptr;
102 INT len;
103
104 pComponent = impl_from_INetCfgComponentBindings(iface);
105 if (pComponent == NULL ||
106 pComponent->pItem == NULL ||
107 pComponent->pItem->pszBinding == NULL)
108 return E_POINTER;
109
110 if (pnccItem == NULL ||
111 ((INetCfgComponentImpl*)pnccItem)->pItem == NULL ||
112 ((INetCfgComponentImpl*)pnccItem)->pItem->szBindName == NULL)
113 return E_POINTER;
114
115 pszBindName = ((INetCfgComponentImpl*)pnccItem)->pItem->szBindName;
116
117 ptr = pComponent->pItem->pszBinding;
118 while (*ptr != UNICODE_NULL)
119 {
120 len = wcslen(ptr);
121
122 if (len > 8 && _wcsicmp(&ptr[8], pszBindName) == 0)
123 return S_OK;
124
125 ptr = ptr + len + 1;
126 }
127
128 return S_FALSE;
129}
130
132WINAPI
134 INetCfgComponentBindings *iface,
135 INetCfgComponent *pnccItem)
136{
137 return E_NOTIMPL;
138}
139
141WINAPI
143 INetCfgComponentBindings *iface,
145 IEnumNetCfgBindingPath **ppIEnum)
146{
148}
149
151WINAPI
153 INetCfgComponentBindings *iface,
155 INetCfgBindingPath *pncbItemSrc,
156 INetCfgBindingPath *pncbItemDest)
157{
158 return E_NOTIMPL;
159}
160
162WINAPI
164 INetCfgComponentBindings *iface,
166 INetCfgBindingPath *pncbItemSrc,
167 INetCfgBindingPath *pncbItemDest)
168{
169 return E_NOTIMPL;
170}
171
172static const INetCfgComponentBindingsVtbl vt_NetCfgComponentBindings =
173{
185};
186
187/***************************************************************
188 * INetCfgComponentPrivate
189 */
190
192WINAPI
194 INetCfgComponentPrivate *iface,
195 REFIID iid,
196 LPVOID *ppvObj)
197{
199 return INetCfgComponent_QueryInterface((INetCfgComponent*)This, iid, ppvObj);
200}
201
202ULONG
203WINAPI
205 INetCfgComponentPrivate *iface)
206{
208 return INetCfgComponent_AddRef((INetCfgComponent*)This);
209}
210
211ULONG
212WINAPI
214 INetCfgComponentPrivate *iface)
215{
217 return INetCfgComponent_Release((INetCfgComponent*)This);
218}
219
221WINAPI
223 INetCfgComponentPrivate *iface,
224 DWORD dwParam1,
225 DWORD dwParam2)
226{
227// INetCfgComponentImpl *This = impl_from_INetCfgComponentPrivate(iface);
228 ERR("INetCfgComponentPrivate_fnUnknown1(%p %lx %lx)\n", iface, dwParam1, dwParam2);
229 return S_OK;
230}
231
232static const INetCfgComponentPrivateVtbl vt_NetCfgComponentPrivate =
233{
238};
239
240/***************************************************************
241 * INetCfgComponent
242 */
243
245WINAPI
247 INetCfgComponent * iface,
248 REFIID iid,
249 LPVOID * ppvObj)
250{
252 *ppvObj = NULL;
253
254 if (IsEqualIID (iid, &IID_IUnknown) ||
256 {
257 *ppvObj = This;
258 INetCfg_AddRef(iface);
259 return S_OK;
260 }
262 {
263 *ppvObj = (LPVOID)&This->lpVtblBindings;
265 return S_OK;
266 }
268 {
269 TRACE("IID_INetCfgComponentPrivate\n");
270 *ppvObj = (LPVOID)&This->lpVtblPrivate;
272 return S_OK;
273 }
274
275 return E_NOINTERFACE;
276}
277
278ULONG
279WINAPI
281 INetCfgComponent * iface)
282{
284 ULONG refCount = InterlockedIncrement(&This->ref);
285
286 return refCount;
287}
288
289ULONG
290WINAPI
292 INetCfgComponent * iface)
293{
295 ULONG refCount = InterlockedDecrement(&This->ref);
296
297 if (!refCount)
298 {
300 }
301 return refCount;
302}
303
305WINAPI
307 INetCfgComponent * iface,
308 LPWSTR * ppszwDisplayName)
309{
311 UINT Length;
313
314 if (This == NULL || ppszwDisplayName == NULL)
315 return E_POINTER;
316
317 if (This->pItem->szDisplayName)
318 Length = wcslen(This->pItem->szDisplayName)+1;
319 else
320 Length = 1;
321
322 szName = CoTaskMemAlloc(Length * sizeof(WCHAR));
323 if (!szName)
324 return E_OUTOFMEMORY;
325
326 if (Length > 1)
327 wcscpy(szName, This->pItem->szDisplayName);
328 else
329 szName[0] = L'\0';
330
331 *ppszwDisplayName = szName;
332
333 return S_OK;
334}
335
337WINAPI
339 INetCfgComponent * iface,
340 LPCWSTR ppszwDisplayName)
341{
344
345 if (This == NULL || ppszwDisplayName == NULL)
346 return E_POINTER;
347
348 /* setting name is only supported for network cards */
349 if (!IsEqualGUID(&This->pItem->ClassGUID, &GUID_DEVCLASS_NET))
350 return E_NOTIMPL;
351
355
356 szName = CoTaskMemAlloc((wcslen(ppszwDisplayName)+1) * sizeof(WCHAR));
357 if (!szName)
358 return E_OUTOFMEMORY;
359
360 wcscpy(szName, ppszwDisplayName);
361 CoTaskMemFree(This->pItem->szDisplayName);
362 This->pItem->szDisplayName = szName;
363 This->pItem->bChanged = TRUE;
364
365 return S_OK;
366}
367
369WINAPI
371 INetCfgComponent * iface,
372 LPWSTR * ppszwHelpText)
373{
374 LPWSTR szHelp;
375 UINT Length;
377
378 if (This == NULL || ppszwHelpText == NULL)
379 return E_POINTER;
380
381 if (This->pItem->szHelpText)
382 Length = wcslen(This->pItem->szHelpText)+1;
383 else
384 Length = 1;
385
386 szHelp = CoTaskMemAlloc(Length * sizeof(WCHAR));
387 if (!szHelp)
388 return E_OUTOFMEMORY;
389
390 if (Length > 1)
391 wcscpy(szHelp, This->pItem->szHelpText);
392 else
393 szHelp[0] = L'\0';
394
395 *ppszwHelpText = szHelp;
396
397 return S_OK;
398}
399
401WINAPI
403 INetCfgComponent * iface,
404 LPWSTR * ppszwId)
405{
406 LPWSTR szId;
408
409 if (This == NULL || ppszwId == NULL)
410 return E_POINTER;
411
412 szId = CoTaskMemAlloc((wcslen(This->pItem->szId)+1) * sizeof(WCHAR));
413 if (!szId)
414 return E_OUTOFMEMORY;
415
416 wcscpy(szId, This->pItem->szId);
417 *ppszwId = szId;
418
419 return S_OK;
420}
421
423WINAPI
425 INetCfgComponent * iface,
426 DWORD * pdwCharacteristics)
427{
429
430 if (This == NULL || pdwCharacteristics == NULL)
431 return E_POINTER;
432
433 *pdwCharacteristics = This->pItem->dwCharacteristics;
434
435 return S_OK;
436}
437
439WINAPI
441 INetCfgComponent * iface,
442 GUID * pGuid)
443{
445
446 if (This == NULL || pGuid == NULL)
447 return E_POINTER;
448
449 CopyMemory(pGuid, &This->pItem->InstanceId, sizeof(GUID));
450 return S_OK;
451}
452
454WINAPI
456 INetCfgComponent * iface,
457 LPWSTR * ppszwDevNodeId)
458{
459 LPWSTR szNode;
461
462 if (This == NULL || ppszwDevNodeId == NULL)
463 return E_POINTER;
464
465 if (!IsEqualGUID(&GUID_DEVCLASS_NET, &This->pItem->ClassGUID))
466 return E_NOTIMPL;
467
468 szNode = CoTaskMemAlloc((wcslen(This->pItem->szNodeId)+1) * sizeof(WCHAR));
469 if (!szNode)
470 return E_OUTOFMEMORY;
471
472 wcscpy(szNode, This->pItem->szNodeId);
473 *ppszwDevNodeId = szNode;
474 return S_OK;
475}
476
478WINAPI
480 INetCfgComponent * iface,
481 GUID * pGuid)
482{
484
485 if (This == NULL || pGuid == NULL)
486 return E_POINTER;
487
488 CopyMemory(pGuid, &This->pItem->ClassGUID, sizeof(GUID));
489 return S_OK;
490}
491
493WINAPI
495 INetCfgComponent * iface,
496 LPWSTR * ppszwBindName)
497{
498 LPWSTR szBind;
500
501 if (This == NULL || ppszwBindName == NULL)
502 return E_POINTER;
503
504 szBind = CoTaskMemAlloc((wcslen(This->pItem->szBindName)+1) * sizeof(WCHAR));
505 if (!szBind)
506 return E_OUTOFMEMORY;
507
508 wcscpy(szBind, This->pItem->szBindName);
509 *ppszwBindName = szBind;
510
511 return S_OK;
512}
513
515WINAPI
517 INetCfgComponent * iface,
518 ULONG * pStatus)
519{
521
522 if (This == NULL || pStatus == NULL)
523 return E_POINTER;
524
525 if (!IsEqualGUID(&GUID_DEVCLASS_NET, &This->pItem->ClassGUID))
526 return E_UNEXPECTED;
527
528 *pStatus = This->pItem->Status;
529
530 return S_OK;
531}
532
534WINAPI
536 INetCfgComponent * iface,
537 HKEY * phkey)
538{
539 WCHAR szBuffer[200] = L"SYSTEM\\CurrentControlSet\\Services\\";
541
542 if (This == NULL || phkey == NULL)
543 return E_POINTER;
544
545 wcscat(szBuffer, This->pItem->szBindName);
546 wcscat(szBuffer, L"\\Parameters");
547
548 if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, szBuffer, 0, KEY_READ | KEY_WRITE, phkey) == ERROR_SUCCESS)
549 return S_OK;
550 else
551 return E_FAIL;
552}
553
554
558 INetCfgComponent * iface,
559 IUnknown *pUnk)
560{
561 WCHAR szName[150];
562 HKEY hKey;
563 DWORD dwSize, dwType;
564 GUID CLSID_NotifyObject;
565 LPOLESTR pStr;
566 INetCfgComponentPropertyUi * pNCCPU;
567 INetCfgComponentControl * pNCCC;
568 HRESULT hr;
569 LONG lRet;
571 CLSID InstanceGUID;
572
573 wcscpy(szName,L"SYSTEM\\CurrentControlSet\\Control\\Network\\");
574
575 /* get the Class GUID */
577 if (FAILED(hr))
578 return hr;
579
580 hr = StringFromCLSID(&ClassGUID, &pStr);
581 if (FAILED(hr))
582 return hr;
583
584 wcscat(szName, pStr);
585 CoTaskMemFree(pStr);
586 wcscat(szName, L"\\");
587
588 /* get the Instance GUID */
589 hr = INetCfgComponent_GetInstanceGuid(iface, &InstanceGUID);
590 if (FAILED(hr))
591 return hr;
592
593 hr = StringFromCLSID(&InstanceGUID, &pStr);
594 if (FAILED(hr))
595 return hr;
596
597 wcscat(szName, pStr);
598 CoTaskMemFree(pStr);
599
600 wcscat(szName, L"\\NDI");
601
603 return E_FAIL;
604
605 dwSize = sizeof(szName);
606 lRet = RegQueryValueExW(hKey, L"ClsID", NULL, &dwType, (LPBYTE)szName, &dwSize);
608
609 if (lRet != ERROR_SUCCESS && dwType != REG_SZ)
610 return E_FAIL;
611
612 hr = CLSIDFromString(szName, &CLSID_NotifyObject);
613 if (FAILED(hr))
614 return E_FAIL;
615
616 hr = CoCreateInstance(&CLSID_NotifyObject, NULL, CLSCTX_INPROC_SERVER, &IID_INetCfgComponentPropertyUi, (LPVOID*)&pNCCPU);
617 if (FAILED(hr))
618 return E_FAIL;
619
621 if (FAILED(hr))
622 {
624 return hr;
625 }
626
628 if (FAILED(hr))
629 {
631 return hr;
632 }
633
634 hr = INetCfgComponentControl_Initialize(pNCCC, iface, This->pNCfg, FALSE);
635 if (FAILED(hr))
636 {
639 return hr;
640 }
641
643 if (FAILED(hr))
644 {
646 return hr;
647 }
648 This->pProperty = pNCCPU;
649 This->pItem->pNCCC = pNCCC;
650
651 return S_OK;
652}
653
654static int CALLBACK
656{
657 // NOTE: This callback is needed to set large icon correctly.
658 HICON hIcon;
659 switch (uMsg)
660 {
661 case PSCB_INITIALIZED:
662 {
664 SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
665 break;
666 }
667 }
668 return 0;
669}
670
672WINAPI
674 INetCfgComponent * iface,
678{
679 HRESULT hr;
680 DWORD dwDefPages;
681 UINT Pages;
682 PROPSHEETHEADERW pinfo;
683 HPROPSHEETPAGE * hppages;
684 INT_PTR iResult;
686
687 if (!This->pProperty)
688 {
690 if (FAILED(hr))
691 return hr;
692 }
693
695 return S_OK;
696
697 dwDefPages = 0;
698 Pages = 0;
699
700 hr = INetCfgComponentPropertyUi_MergePropPages(This->pProperty, &dwDefPages, (BYTE**)&hppages, &Pages, hwndParent, NULL);
701 if (FAILED(hr) || !Pages)
702 {
703 return hr;
704 }
705 ZeroMemory(&pinfo, sizeof(PROPSHEETHEADERW));
706 pinfo.dwSize = sizeof(PROPSHEETHEADERW);
707 pinfo.dwFlags = PSH_NOCONTEXTHELP | PSH_PROPTITLE | PSH_NOAPPLYNOW |
709 pinfo.u3.phpage = hppages;
710 pinfo.hwndParent = hwndParent;
711 pinfo.nPages = Pages;
713 pinfo.pszCaption = This->pItem->szDisplayName;
716
717 iResult = PropertySheetW(&pinfo);
718 CoTaskMemFree(hppages);
719 if (iResult > 0)
720 {
721 /* indicate that settings should be stored */
722 This->pItem->bChanged = TRUE;
723 return S_OK;
724 }
725 return S_FALSE;
726}
727static const INetCfgComponentVtbl vt_NetCfgComponent =
728{
744};
745
747WINAPI
749{
751
752 if (!ppv)
753 return E_POINTER;
754
756 if (!This)
757 return E_OUTOFMEMORY;
758
759 This->ref = 1;
760 This->lpVtbl = (const INetCfgComponent*)&vt_NetCfgComponent;
761 This->lpVtblBindings = (const INetCfgComponentBindings*)&vt_NetCfgComponentBindings;
762 This->lpVtblPrivate = (const INetCfgComponentPrivate*)&vt_NetCfgComponentPrivate;
763 This->pProperty = NULL;
764 This->pItem = pItem;
765 This->pNCfg = pNCfg;
766
767 if (!SUCCEEDED (INetCfgComponent_QueryInterface ((INetCfgComponent*)This, riid, ppv)))
768 {
770 return E_NOINTERFACE;
771 }
772
773 INetCfgComponent_Release((INetCfgComponent*)This);
774 return S_OK;
775}
776
777
778/***************************************************************
779 * IEnumNetCfgComponent
780 */
781
783WINAPI
785 IEnumNetCfgComponent * iface,
786 REFIID iid,
787 LPVOID * ppvObj)
788{
790 *ppvObj = NULL;
791
792 if (IsEqualIID (iid, &IID_IUnknown) ||
794 {
795 *ppvObj = This;
796 INetCfg_AddRef(iface);
797 return S_OK;
798 }
799
800 return E_NOINTERFACE;
801}
802
803
804ULONG
805WINAPI
807 IEnumNetCfgComponent * iface)
808{
810 ULONG refCount = InterlockedIncrement(&This->ref);
811
812 return refCount;
813}
814
815ULONG
816WINAPI
818 IEnumNetCfgComponent * iface)
819{
821 ULONG refCount = InterlockedDecrement(&This->ref);
822
823 return refCount;
824}
825
827WINAPI
829 IEnumNetCfgComponent * iface,
830 ULONG celt,
831 INetCfgComponent **rgelt,
832 ULONG *pceltFetched)
833{
834 HRESULT hr;
836
837 if (!iface || !rgelt)
838 return E_POINTER;
839
840 if (celt != 1)
841 return E_INVALIDARG;
842
843 if (!This->pCurrent)
844 return S_FALSE;
845
846 hr = INetCfgComponent_Constructor (NULL, &IID_INetCfgComponent, (LPVOID*)rgelt, This->pCurrent, This->pNCfg);
847 if (SUCCEEDED(hr))
848 {
849 This->pCurrent = This->pCurrent->pNext;
850 if (pceltFetched)
851 *pceltFetched = 1;
852 }
853 return hr;
854}
855
857WINAPI
859 IEnumNetCfgComponent * iface,
860 ULONG celt)
861{
863
864 if (!This->pCurrent)
865 return S_FALSE;
866
867 while(celt-- > 0 && This->pCurrent)
868 This->pCurrent = This->pCurrent->pNext;
869
870 if (!celt)
871 return S_OK;
872 else
873 return S_FALSE;
874}
875
877WINAPI
879 IEnumNetCfgComponent * iface)
880{
882
883 This->pCurrent = This->pHead;
884 return S_OK;
885}
886
888WINAPI
890 IEnumNetCfgComponent * iface,
891 IEnumNetCfgComponent **ppenum)
892{
893 return E_NOTIMPL;
894}
895
896static const IEnumNetCfgComponentVtbl vt_EnumNetCfgComponent =
897{
905};
906
908WINAPI
910{
912
913 if (!ppv)
914 return E_POINTER;
915
917 if (!This)
918 return E_OUTOFMEMORY;
919
920 This->ref = 1;
921 This->lpVtbl = (const IEnumNetCfgComponent*)&vt_EnumNetCfgComponent;
922 This->pCurrent = pItem;
923 This->pHead = pItem;
924 This->pNCfg = pNCfg;
925
926 if (!SUCCEEDED (IEnumNetCfgComponent_QueryInterface ((INetCfgComponent*)This, riid, ppv)))
927 {
929 return E_NOINTERFACE;
930 }
931
932 IEnumNetCfgComponent_Release((IEnumNetCfgComponent*)This);
933 return S_OK;
934}
935
936
#define __inline
Definition: _wctype.cpp:15
#define InterlockedIncrement
Definition: armddk.h:53
#define InterlockedDecrement
Definition: armddk.h:52
#define ERR(fmt,...)
Definition: precomp.h:57
#define IDI_INTERNET
Definition: resource.h:23
const GUID IID_IUnknown
#define RegCloseKey(hKey)
Definition: registry.h:49
LPARAM lParam
Definition: combotst.c:139
wcscat
wcscpy
static HWND hwndParent
Definition: cryptui.c:300
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
#define E_NOTIMPL
Definition: ddrawi.h:99
#define E_FAIL
Definition: ddrawi.h:102
#define ERROR_SUCCESS
Definition: deptool.c:10
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
Definition: propsheet.c:2916
#define CALLBACK
Definition: compat.h:35
HINSTANCE netcfgx_hInstance
Definition: netcfgx.c:15
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
Definition: compobj.c:3325
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
Definition: compobj.c:2338
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
Definition: compobj.c:2412
static const WCHAR ClassGUID[]
Definition: devclass.c:30
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
#define L(x)
Definition: resources.c:13
unsigned long DWORD
Definition: ntddk_ex.h:95
__in WDFDMATRANSACTION __out NTSTATUS * pStatus
FxAutoRegKey hKey
GLenum GLsizei len
Definition: glext.h:6722
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:426
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
HRESULT WINAPI INetCfgComponentPrivate_fnUnknown1(INetCfgComponentPrivate *iface, DWORD dwParam1, DWORD dwParam2)
HRESULT WINAPI INetCfgComponentBindings_fnBindTo(INetCfgComponentBindings *iface, INetCfgComponent *pnccItem)
HRESULT WINAPI IEnumNetCfgComponent_fnClone(IEnumNetCfgComponent *iface, IEnumNetCfgComponent **ppenum)
ULONG WINAPI INetCfgComponentBindings_fnRelease(INetCfgComponentBindings *iface)
HRESULT WINAPI IEnumNetCfgComponent_fnQueryInterface(IEnumNetCfgComponent *iface, REFIID iid, LPVOID *ppvObj)
static __inline INetCfgComponentImpl * impl_from_INetCfgComponentPrivate(INetCfgComponentPrivate *iface)
static __inline INetCfgComponentImpl * impl_from_INetCfgComponentBindings(INetCfgComponentBindings *iface)
HRESULT WINAPI INetCfgComponentBindings_fnIsBoundTo(INetCfgComponentBindings *iface, INetCfgComponent *pnccItem)
HRESULT WINAPI INetCfgComponentBindings_fnEnumBindingPaths(INetCfgComponentBindings *iface, DWORD dwFlags, IEnumNetCfgBindingPath **ppIEnum)
HRESULT WINAPI INetCfgComponent_fnGetDisplayName(INetCfgComponent *iface, LPWSTR *ppszwDisplayName)
ULONG WINAPI IEnumNetCfgComponent_fnRelease(IEnumNetCfgComponent *iface)
HRESULT CreateNotificationObject(INetCfgComponentImpl *This, INetCfgComponent *iface, IUnknown *pUnk)
HRESULT WINAPI INetCfgComponent_fnGetInstanceGuid(INetCfgComponent *iface, GUID *pGuid)
HRESULT WINAPI INetCfgComponentPrivate_fnQueryInterface(INetCfgComponentPrivate *iface, REFIID iid, LPVOID *ppvObj)
static int CALLBACK PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam)
static const IEnumNetCfgComponentVtbl vt_EnumNetCfgComponent
HRESULT WINAPI INetCfgComponent_fnGetDeviceStatus(INetCfgComponent *iface, ULONG *pStatus)
HRESULT WINAPI INetCfgComponentBindings_fnIsBindableTo(INetCfgComponentBindings *iface, INetCfgComponent *pnccItem)
HRESULT WINAPI INetCfgComponent_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv, NetCfgComponentItem *pItem, INetCfg *pNCfg)
ULONG WINAPI INetCfgComponent_fnRelease(INetCfgComponent *iface)
HRESULT WINAPI INetCfgComponentBindings_fnQueryInterface(INetCfgComponentBindings *iface, REFIID iid, LPVOID *ppvObj)
HRESULT WINAPI INetCfgComponentBindings_fnMoveAfter(INetCfgComponentBindings *iface, DWORD dwFlags, INetCfgBindingPath *pncbItemSrc, INetCfgBindingPath *pncbItemDest)
HRESULT WINAPI INetCfgComponent_fnGetCharacteristics(INetCfgComponent *iface, DWORD *pdwCharacteristics)
HRESULT WINAPI INetCfgComponent_fnQueryInterface(INetCfgComponent *iface, REFIID iid, LPVOID *ppvObj)
static const INetCfgComponentBindingsVtbl vt_NetCfgComponentBindings
HRESULT WINAPI IEnumNetCfgComponent_fnReset(IEnumNetCfgComponent *iface)
HRESULT WINAPI INetCfgComponent_fnGetPnpDevNodeId(INetCfgComponent *iface, LPWSTR *ppszwDevNodeId)
HRESULT WINAPI INetCfgComponentBindings_fnSupportsBindingInterface(INetCfgComponentBindings *iface, DWORD dwFlags, LPCWSTR pszwInterfaceName)
HRESULT WINAPI INetCfgComponent_fnGetId(INetCfgComponent *iface, LPWSTR *ppszwId)
static const INetCfgComponentVtbl vt_NetCfgComponent
ULONG WINAPI INetCfgComponentPrivate_fnRelease(INetCfgComponentPrivate *iface)
ULONG WINAPI INetCfgComponentPrivate_fnAddRef(INetCfgComponentPrivate *iface)
ULONG WINAPI INetCfgComponentBindings_fnAddRef(INetCfgComponentBindings *iface)
HRESULT WINAPI IEnumNetCfgComponent_fnNext(IEnumNetCfgComponent *iface, ULONG celt, INetCfgComponent **rgelt, ULONG *pceltFetched)
HRESULT WINAPI INetCfgComponent_fnGetBindName(INetCfgComponent *iface, LPWSTR *ppszwBindName)
ULONG WINAPI INetCfgComponent_fnAddRef(INetCfgComponent *iface)
HRESULT WINAPI IEnumNetCfgComponent_fnSkip(IEnumNetCfgComponent *iface, ULONG celt)
HRESULT WINAPI IEnumNetCfgComponent_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv, NetCfgComponentItem *pItem, INetCfg *pNCfg)
HRESULT WINAPI INetCfgComponent_fnRaisePropertyUi(INetCfgComponent *iface, IN HWND hwndParent, IN DWORD dwFlags, IN IUnknown *pUnk)
HRESULT WINAPI INetCfgComponent_fnGetClassGuid(INetCfgComponent *iface, GUID *pGuid)
HRESULT WINAPI INetCfgComponent_fnSetDisplayName(INetCfgComponent *iface, LPCWSTR ppszwDisplayName)
HRESULT WINAPI INetCfgComponent_fnGetHelpText(INetCfgComponent *iface, LPWSTR *ppszwHelpText)
HRESULT WINAPI INetCfgComponentBindings_fnMoveBefore(INetCfgComponentBindings *iface, DWORD dwFlags, INetCfgBindingPath *pncbItemSrc, INetCfgBindingPath *pncbItemDest)
ULONG WINAPI IEnumNetCfgComponent_fnAddRef(IEnumNetCfgComponent *iface)
static const INetCfgComponentPrivateVtbl vt_NetCfgComponentPrivate
HRESULT WINAPI INetCfgComponent_fnOpenParamKey(INetCfgComponent *iface, HKEY *phkey)
HRESULT WINAPI INetCfgComponentBindings_fnUnbindFrom(INetCfgComponentBindings *iface, INetCfgComponent *pnccItem)
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define FAILED(hr)
Definition: intsafe.h:51
#define REG_SZ
Definition: layer.c:22
#define ZeroMemory
Definition: minwinbase.h:31
#define CopyMemory
Definition: minwinbase.h:29
LONG_PTR LPARAM
Definition: minwindef.h:175
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
static PVOID ptr
Definition: dispmode.c:27
static HICON
Definition: imagelist.c:80
static LPOLESTR
Definition: stg_prop.c:27
HICON hIcon
Definition: msconfig.c:44
struct _PSP * HPROPSHEETPAGE
Definition: mstask.idl:90
unsigned int UINT
Definition: ndis.h:50
HRESULT WINAPI IEnumNetCfgBindingPath_Constructor(IUnknown *pUnkOuter, REFIID riid, LPVOID *ppv, DWORD dwFlags)
#define INetCfgComponentPropertyUi_SetContext(p, a)
Definition: netcfgn.h:81
#define INetCfgComponentPropertyUi_QueryInterface(p, a, b)
Definition: netcfgn.h:77
EXTERN_C const IID IID_INetCfgComponentPropertyUi
Definition: netcfgn.h:88
#define INetCfgComponentPropertyUi_Release(p)
Definition: netcfgn.h:79
EXTERN_C const IID IID_INetCfgComponentControl
Definition: netcfgn.h:57
#define INetCfgComponentControl_Initialize(p, a, b, c)
Definition: netcfgn.h:51
#define INetCfgComponentPropertyUi_QueryPropertyUi(p, a)
Definition: netcfgn.h:80
#define INetCfgComponentControl_Release(p)
Definition: netcfgn.h:50
#define INetCfgComponentPropertyUi_MergePropPages(p, a, b, c, d, e)
Definition: netcfgn.h:82
#define INetCfgComponent_QueryInterface(p, a, b)
Definition: netcfgx.h:60
#define INetCfgComponent_Release(p)
Definition: netcfgx.h:62
#define INetCfgComponent_GetClassGuid(p, a)
Definition: netcfgx.h:70
EXTERN_C const IID IID_INetCfgComponentBindings
Definition: netcfgx.h:239
@ NCRP_QUERY_PROPERTY_UI
Definition: netcfgx.h:31
EXTERN_C const IID IID_INetCfgComponent
Definition: netcfgx.h:77
#define INetCfgComponentBindings_AddRef(p)
Definition: netcfgx.h:227
#define INetCfg_AddRef(p)
Definition: netcfgx.h:288
#define INetCfgComponent_GetInstanceGuid(p, a)
Definition: netcfgx.h:68
#define INetCfgComponent_AddRef(p)
Definition: netcfgx.h:61
EXTERN_C const IID IID_IEnumNetCfgBindingPath
Definition: netcfgx.h:192
EXTERN_C const IID IID_IEnumNetCfgComponent
Definition: netcfgx.h:266
#define IEnumNetCfgComponent_QueryInterface(p, a, b)
Definition: netcfgx.h:257
#define IEnumNetCfgComponent_Release(p)
Definition: netcfgx.h:259
#define INetCfgComponentPrivate_AddRef(p)
Definition: netcfgx_undoc.h:21
EXTERN_C const IID IID_INetCfgComponentPrivate
Definition: netcfgx_undoc.h:16
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
#define KEY_READ
Definition: nt_native.h:1026
#define LPVOID
Definition: nt_native.h:45
#define KEY_WRITE
Definition: nt_native.h:1034
#define UNICODE_NULL
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
long LONG
Definition: pedump.c:60
static const WCHAR szName[]
Definition: powrprof.c:45
#define PSH_PROPTITLE
Definition: prsht.h:40
#define PSH_USECALLBACK
Definition: prsht.h:48
#define PSH_USEICONID
Definition: prsht.h:42
#define PSCB_INITIALIZED
Definition: prsht.h:75
struct _PROPSHEETHEADERW PROPSHEETHEADERW
#define PSH_NOAPPLYNOW
Definition: prsht.h:47
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define REFIID
Definition: guiddef.h:118
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
HRESULT hr
Definition: shlfolder.c:183
#define TRACE(s)
Definition: solgame.cpp:4
NetCfgComponentItem * pHead
const IEnumNetCfgComponent * lpVtbl
NetCfgComponentItem * pCurrent
const INetCfgComponentBindings * lpVtblBindings
INetCfgComponentPropertyUi * pProperty
const INetCfgComponent * lpVtbl
NetCfgComponentItem * pItem
const INetCfgComponentPrivate * lpVtblPrivate
HINSTANCE hInstance
Definition: prsht.h:296
DWORD dwSize
Definition: prsht.h:293
DWORD dwFlags
Definition: prsht.h:294
LPCWSTR pszIcon
Definition: prsht.h:299
HWND hwndParent
Definition: prsht.h:295
PFNPROPSHEETCALLBACK pfnCallback
Definition: prsht.h:311
HPROPSHEETPAGE * phpage
Definition: prsht.h:309
LPCWSTR pszCaption
Definition: prsht.h:301
#define ICON_BIG
Definition: tnclass.cpp:51
uint16_t * PWSTR
Definition: typedefs.h:56
int32_t INT_PTR
Definition: typedefs.h:64
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
unsigned char * LPBYTE
Definition: typedefs.h:53
int32_t INT
Definition: typedefs.h:58
#define IN
Definition: typedefs.h:39
uint32_t ULONG
Definition: typedefs.h:59
#define WINAPI
Definition: msvc.h:6
#define S_FALSE
Definition: winerror.h:3451
#define E_NOINTERFACE
Definition: winerror.h:3479
#define E_UNEXPECTED
Definition: winerror.h:3528
#define E_POINTER
Definition: winerror.h:3480
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
Definition: cursoricon.c:2427
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
unsigned char BYTE
Definition: xxhash.c:193