FindFirstURLCacheEntry,FindNextUrlCacheEntry,DeleteUrlCacheEntry

int   WINAPI   RetrieveStream(HWND   hX,   LPSTR   lpszUrl)  
  {  
          LPINTERNET_CACHE_ENTRY_INFO   lpCacheEntry;  
          DWORD   dwEntrySize=0,dwStreamSize=0;  
          HANDLE   hStream;  
          LPSTR   lpszOut;  
   
          RetrieveUrlCacheEntryStream(lpszUrl,NULL,   &dwEntrySize,   TRUE,   0);  
          lpCacheEntry   =   LPINTERNET_CACHE_ENTRY_INFO(new   char[dwEntrySize]);  
          if   (!(hStream   =   RetrieveUrlCacheEntryStream(lpszUrl,lpCacheEntry,    
                  &dwEntrySize,   TRUE,   0)))  
          {  
                  ErrorOut(hX,GetLastError(),"RetrieveUrlCacheEntryStream");  
                  return   FALSE;  
          }  
          else  
          {  
                  dwStreamSize   =   lpCacheEntry->dwSizeLow;  
                  lpszOut   =   new   char[dwStreamSize];  
                  if   (!ReadUrlCacheEntryStream(hStream,0,LPVOID(lpszOut),&dwStreamSize,  
                          0))  
                  {  
                          ErrorOut(hX,GetLastError(),"ReadUrlCacheEntryStream");  
                          return   FALSE;  
                  }  
                  else  
                  {  
                          lpszOut[dwStreamSize]='/0';  
                          SetDlgItemText(hX,IDC_CacheDump,lpszOut);  
                          return   TRUE;  
                  }  
          }  
   
          delete   (lpCacheEntry);  
          delete   (lpszOut);  
           
          if   (!UnlockUrlCacheEntryStream(hStream,0))  
          {  
                  ErrorOut(hX,GetLastError(),"UnlockUrlCacheEntryStream");  
                  return   FALSE;  
          }  
          else  
                  return   TRUE;  
  }   
    
 

你可能感兴趣的:(cache,null,delete,winapi)