title: How To Get DeleteUrlCacheEntry() Error Codes? (Or additional information on why a particular deletion didn't work)?
body: <p>Basically, when I call DeleteUrlCacheEntry (which is part of the Wininet.dll API) I either get returned the number 1 (which means, deletion successful) or the number 0 (which meant, deletion didn't work).</p>
  
  <p>My question is, how can I find out why a deletion did not work? (that is, when a 0 is returned). I heard there is a GetLastError() function in C++, however I am using VB6 and apparently the GetLastError equivalent in VB6 is the Err.LastDllError property.</p>
  
  <p>After a DeleteUrlCacheEntry attempted deletion fails (returns 0) I call/query the Err.LastDllError and it always returns 0 - no matter what. It returns 0 even if DeleteUrlCacheEntry returns 0 (deletion didn't work) and even when it returns 1 (deletion did work). I also make the call/query to Err.LastDllError as soon as possible (as in, right after the DeleteUrlCacheEntry call).</p>
  
  <p>I am really confused, because I don't even get a runtime error or any typical exception (or any exception for that matter). I do not have On Error Resume Next to ignore exception anywhere in my application, so every means of an error being reported to me is available but I cannot for the life of me figure out why a particular DeleteUrlCacheEntry() attempt will fail and return 0 (there doesn't seem to be a way for me to find out).</p>
  
  <p>So, my question is, how do I get extended error information from the DeleteUrlCacheEntry() function (residing in the wininet.dll API)?</p>
  
  <p>If you would like more information on the reason why I am looking for extended error information from the DeleteUrlCacheEntry() function, I have another question which details this (together with actual examples of cache items that work and don't work when a deletion is attempted): <a href="https://stackoverflow.com/questions/12096546/deleteurlcacheentry-function-of-wininet-api-not-deleting-some-internet-explo">https://stackoverflow.com/questions/12096546/deleteurlcacheentry-function-of-wininet-api-not-deleting-some-internet-explo</a></p>
  
  <p>Also, just to add, I am using VB6 - but principally it should be the same across most languages as it is an API call. Here is my declaration in VB6:</p>
  
  <blockquote>
    <p>Public Declare Function DeleteUrlCacheEntry Lib "WININET" Alias
    "DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long</p>
  </blockquote>
  
  <p>Also, I am calling it like this:</p>
  
  <blockquote>
    <p>Dim lReturnValue As Long</p>
    
    <p>Dim cacheFileString As String</p>
    
    <p>' GetStrFromPtrA turns Pointer (Long) to String. cacheFileString is the actual text/string of the lpszSourceUrlName turned from Pointer (Long) to String (human readable cache file name/string). Also, cacheFileString is retreived from FindFirst/NextEntry functions in a loop, so can't be incorrectly formatted or anything, as it also works when deleting most other items.</p>
    
    <p>cacheFileString = GetStrFromPtrA(icei.lpszSourceUrlName)</p>
    
    <p>lReturnValue = DeleteUrlCacheEntry(cacheFileString)</p>
  </blockquote>
  
  <p>The lReturnValue ends up being 0 if deletion didn't work, and 1 when deletion does work, and that is it. Also, <code>Err.LastDllError</code> always returns 0.</p>
  
  <p>Thank you for your anticipated assistance.</p>