// // TheApp.h // // Application header for NCONN32.DLL // #pragma once #include "resource.h" extern HINSTANCE g_hInstance; typedef DWORD DEVINST; typedef DWORD DEVNODE; // 16-bit function prototypes, including thunk connection point // extern "C" BOOL WINAPI thk_ThunkConnect32(LPCSTR lpDll16, LPCSTR lpDll32, HINSTANCE hDllInst, DWORD dwReason); extern "C" DWORD WINAPI CallClassInstaller16(HWND hwndParent, LPCSTR lpszClassName, LPCSTR lpszDeviceID); extern "C" HRESULT WINAPI FindClassDev16(HWND hwndParent, LPCSTR pszClass, LPCSTR pszDeviceID); extern "C" HRESULT WINAPI LookupDevNode16(HWND hwndParent, LPCSTR pszClass, LPCSTR pszEnumKey, DEVNODE FAR* pDevNode, DWORD FAR* pdwFreePointer); extern "C" HRESULT WINAPI FreeDevNode16(DWORD dwFreePointer); extern "C" HRESULT WINAPI IcsUninstall16(void); // Binding functions // int WINAPI EnumMatchingNetBindings(LPCSTR pszParentBinding, LPCSTR pszDeviceID, LPSTR** pprgBindings); VOID RemoveBindingFromParent(HKEY hkeyParentBindingsKey, LPCSTR pszBinding); BOOL WINAPI IsValidNetEnumKey(LPCSTR pszClass, LPCSTR pszDevice, LPCSTR pszEnumSubKey); BOOL WINAPI FindValidNetEnumKey(LPCSTR pszClass, LPCSTR pszDevice, LPSTR pszBuf, int cchBuf); int WINAPI EnumNetBindings(LPCSTR pszParentBinding, LPSTR** pprgBindings); int WINAPI EnumMatchingNetBindings(LPCSTR pszParentBinding, LPCSTR pszDeviceID, LPSTR** pprgBindings); BOOL WINAPI RemoveBrokenNetItems(LPCSTR pszClass, LPCSTR pszDeviceID); BOOL GetDeviceInterfaceList(LPCSTR pszClass, LPCSTR pszDeviceID, LPCSTR pszInterfaceType, LPSTR pszBuf, int cchBuf); BOOL CheckMatchingInterface(LPCSTR pszList1, LPCSTR pszList2); BOOL GetDeviceLowerRange(LPCSTR pszClass, LPCSTR pszDeviceID, LPSTR pszBuf, int cchBuf); BOOL GetDeviceUpperRange(LPCSTR pszClass, LPCSTR pszDeviceID, LPSTR pszBuf, int cchBuf); HRESULT FindAndCloneNetEnumKey(LPCSTR pszClass, LPCSTR pszDeviceID, LPSTR pszBuf, int cchBuf); HRESULT CloneNetClassKey(LPCSTR pszExistingDriver, LPSTR pszNewDriverBuf, int cchNewDriverBuf); HRESULT OpenNetEnumKey(CRegistry& reg, LPCSTR pszSubKey, REGSAM dwAccess); HRESULT DeleteClassKeyReferences(LPCSTR pszClass, LPCSTR pszDeviceID); BOOL IsNetClassKeyReferenced(LPCSTR pszClassKey); BOOL WINAPI DoesBindingMatchDeviceID(LPCSTR pszBinding, LPCSTR pszDeviceID); // Protocol functions // BOOL WINAPI IsProtocolBoundToAnyAdapter(LPCSTR pszProtocolID); HRESULT WINAPI BindProtocolToOnlyOneAdapter(LPCSTR pszProtocolDeviceID, LPCSTR pszAdapterKey, BOOL bIgnoreVirtualNics); HRESULT WINAPI BindProtocolToAllAdapters(LPCSTR pszProtocolDeviceID); HRESULT BindProtocolToAdapter(HKEY hkeyAdapterBindings, LPCSTR pszProtocolDeviceID, BOOL bEnableSharing); // Sharing functions // HRESULT WINAPI EnableDisableProtocolSharing(LPCTSTR pszProtocolDeviceID, BOOL bEnable, BOOL bDialUp); HRESULT WINAPI EnableSharingOnNetBinding(LPCSTR pszNetBinding); HRESULT WINAPI DisableSharingOnNetBinding(LPCSTR pszNetBinding); HRESULT CreateNewFilePrintSharing(LPSTR pszBuf, int cchBuf); HRESULT WINAPI EnableFileSharing(); HRESULT WINAPI EnablePrinterSharing(); // Config manager functions // BOOL WINAPI IsNetAdapterBroken(const NETADAPTER* pAdapter); BOOL WINAPI GetNetAdapterStatus(const NETADAPTER* pAdapter, DWORD* pdwStatus, DWORD* pdwProblemNumber); DWORD WINAPI GetNetAdapterDevNode(NETADAPTER* pAdapter); DWORD GetChildDevice(OUT DWORD* pdnChildInst, IN DWORD dnDevInst, IN OUT HINSTANCE *phInstance, IN ULONG ulFlags); DWORD GetSiblingDevice(OUT DWORD* pdnChildInst, IN DWORD dnDevInst, IN HINSTANCE hInstance, IN ULONG ulFlags); DWORD GetDeviceIdA(IN DWORD dnDevInst, OUT char** Buffer, OUT ULONG* pLength, IN ULONG ulFlags); DWORD GetDevNodeRegistryPropertyA(IN DWORD dnDevInst, IN ULONG ulProperty, OUT PULONG pulRegDataType, OUT PVOID Buffer, IN OUT PULONG pulLength, IN ULONG ulFlags);