//We are not connected, so lets try:
//The CONNECTIONINFO is the structure that
//tells Connection Manager how we want
//to connect
CONNMGR_CONNECTIONINFO sConInfo;
memset(&sConInfo,0, sizeof(CONNMGR_CONNECTIONINFO));
sConInfo.cbSize = sizeof(CONNMGR_CONNECTIONINFO);
// We want to use the "guidDestNet" parameter
sConInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
// This is the highest data priority.
sConInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
sConInfo.dwFlags=0;
// Lets be nice and share the connection with
// other applications
sConInfo.bExclusive=FALSE;
sConInfo.bDisabled=FALSE;
sConInfo.guidDestNet=IID_DestNetInternet;
if (ConnMgrEstablishConnection(&sConInfo,&phWebConnection) == S_OK)
{
for (unsigned int k = 0; k < 6; k++) {
ConnMgrConnectionStatus(phWebConnection,&pdwStatus);
if (pdwStatus == CONNMGR_STATUS_CONNECTED)
return TRUE;
else {
if (pdwStatus == CONNMGR_STATUS_CONNECTIONCANCELED || pdwStatus == CONNMGR_STATUS_WAITINGCONNECTIONABORT)
return FALSE;
Sleep(2000);
ConnMgrConnectionStatus(phWebConnection,&pdwStatus);
if (pdwStatus == CONNMGR_STATUS_WAITINGCONNECTION) {