bool wxSocketMSWManager::OnInit() { LPCTSTR pclassname = NULL; int i; /* Create internal window for event notifications */ hWin = wxCreateHiddenWindow(&pclassname, CLASSNAME, wxSocket_Internal_WinProc); if (!hWin) return false; /* Initialize socket list */ for (i = 0; i < MAXSOCKETS; i++) { socketList[i] = NULL; } firstAvailable = 0; // we don't link with wsock32.dll statically to avoid // dependencies on it for all the application using wx even if they don't use // sockets #define WINSOCK_DLL_NAME wxT("wsock32.dll") gs_wsock32dll.Load(WINSOCK_DLL_NAME, wxDL_VERBATIM | wxDL_QUIET); if ( !gs_wsock32dll.IsLoaded() ) return false; wxDL_INIT_FUNC(gs_, WSAAsyncSelect, gs_wsock32dll); if ( !gs_WSAAsyncSelect ) return false; // finally initialize WinSock WSADATA wsaData; return WSAStartup((1 << 8) | 1, &wsaData) == 0; }
bool wxSocketMSWManager::OnInit() { static LPCTSTR pclassname = NULL; int i; /* Create internal window for event notifications */ hWin = wxCreateHiddenWindow(&pclassname, CLASSNAME, wxSocket_Internal_WinProc); if (!hWin) return false; /* Initialize socket list */ for (i = 0; i < MAXSOCKETS; i++) { socketList[i] = NULL; } firstAvailable = 0; // we don't link with wsock32.dll (or ws2 in CE case) statically to avoid // dependencies on it for all the application using wx even if they don't use // sockets #ifdef __WXWINCE__ #define WINSOCK_DLL_NAME wxT("ws2.dll") #else #define WINSOCK_DLL_NAME wxT("wsock32.dll") #endif gs_wsock32dll.Load(WINSOCK_DLL_NAME, wxDL_VERBATIM | wxDL_QUIET); if ( !gs_wsock32dll.IsLoaded() ) return false; #ifndef __WXWINCE__ wxDL_INIT_FUNC(gs_, WSAAsyncSelect, gs_wsock32dll); if ( !gs_WSAAsyncSelect ) return false; #else wxDL_INIT_FUNC(gs_, WSAEventSelect, gs_wsock32dll); if ( !gs_WSAEventSelect ) return false; wxDL_INIT_FUNC(gs_, WSACreateEvent, gs_wsock32dll); if ( !gs_WSACreateEvent ) return false; wxDL_INIT_FUNC(gs_, WSAWaitForMultipleEvents, gs_wsock32dll); if ( !gs_WSAWaitForMultipleEvents ) return false; wxDL_INIT_FUNC(gs_, WSAEnumNetworkEvents, gs_wsock32dll); if ( !gs_WSAEnumNetworkEvents ) return false; currSocket = 0; #endif // !__WXWINCE__/__WXWINCE__ // finally initialize WinSock WSADATA wsaData; return WSAStartup((1 << 8) | 1, &wsaData) == 0; }
HTMLHELP GetHtmlHelpFunction() { static HTMLHELP s_htmlHelp = NULL; if ( !s_htmlHelp ) { static wxDynamicLibrary s_dllHtmlHelp(wxT("HHCTRL.OCX"), wxDL_VERBATIM); if ( !s_dllHtmlHelp.IsLoaded() ) { wxLogError(_("MS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.")); } else { s_htmlHelp = (HTMLHELP)s_dllHtmlHelp.GetSymbol(HTMLHELP_NAME); if ( !s_htmlHelp ) { wxLogError(_("Failed to initialize MS HTML Help.")); } } } return s_htmlHelp; }
//============================================================================= // Function: GetVolumes // Purpose: Generate and return a list of all volumes (drives) available. // Notes: //============================================================================= wxArrayString wxFSVolumeBase::GetVolumes(int flagsSet, int flagsUnset) { ::InterlockedExchange(&s_cancelSearch, FALSE); // reset #if wxUSE_DYNLIB_CLASS if (!s_mprLib.IsLoaded() && s_mprLib.Load(wxT("mpr.dll"))) { #ifdef UNICODE s_pWNetOpenEnum = (WNetOpenEnumPtr)s_mprLib.GetSymbol(wxT("WNetOpenEnumW")); s_pWNetEnumResource = (WNetEnumResourcePtr)s_mprLib.GetSymbol(wxT("WNetEnumResourceW")); #else s_pWNetOpenEnum = (WNetOpenEnumPtr)s_mprLib.GetSymbol(wxT("WNetOpenEnumA")); s_pWNetEnumResource = (WNetEnumResourcePtr)s_mprLib.GetSymbol(wxT("WNetEnumResourceA")); #endif s_pWNetCloseEnum = (WNetCloseEnumPtr)s_mprLib.GetSymbol(wxT("WNetCloseEnum")); } #endif wxArrayString list; //------------------------------- // Local and mapped drives first. //------------------------------- // Allocate the required space for the API call. const DWORD chars = GetLogicalDriveStrings(0, NULL); TCHAR* buf = new TCHAR[chars+1]; // Get the list of drives. GetLogicalDriveStrings(chars, buf); // Parse the list into an array, applying appropriate filters. TCHAR *pVol; pVol = buf; while (*pVol) { FilteredAdd(list, pVol, flagsSet, flagsUnset); pVol = pVol + wxStrlen(pVol) + 1; } // Cleanup. delete[] buf; //--------------------------- // Network Neighborhood next. //--------------------------- // not exclude remote and not removable if (!(flagsUnset & wxFS_VOL_REMOTE) && !(flagsSet & wxFS_VOL_REMOVABLE) ) { // The returned list will be sorted alphabetically. We don't pass // our in since we don't want to change to order of the local drives. wxArrayString nn; if (BuildRemoteList(nn, 0, flagsSet, flagsUnset)) { for (size_t idx = 0; idx < nn.GetCount(); idx++) list.Add(nn[idx]); } } return list; } // GetVolumes