wmv downloaden und CAPSTATUS undeclared



  • Servus,

    ich habe diesmal zwei Probleme:

    1. Wie kann man eine wmv-Dateien downloaden? Wie z.B. http://c36000-o.w.core.cdn.streamfarm.net/36000zdf/ondemand/3546zdf/zdf/zdf/08/03/080322_google_nes_vh.wmv ?

    Ich habe es mit folgender Funktion probiert:

    BOOL GetFile (HINTERNET IN hOpen, // Handle from InternetOpen()
                     CHAR *szUrl,        // Full URL
                     CHAR *szFileName)   // Local file name
       {
           DWORD dwSize;
           CHAR   szHead[] = "Accept: */*\r\n\r\n";
           VOID * szTemp[25];
           HINTERNET  hConnect;
           FILE * pFile;
    
           if ( !(hConnect = InternetOpenUrl ( hOpen, szUrl, szHead, lstrlen (szHead), 0, 0)))
           {
                 return 0;
           }
    
           if  ( !(pFile = fopen (szFileName, "wb" ) ) )
           {
               return FALSE;
           }
           do
           {
              if (!InternetReadFile (hConnect, szTemp, 50,  &dwSize) )
              {
                  fclose (pFile);
                  return FALSE;
              }
              if (!dwSize)
                  break;
              else
                 fwrite(szTemp, sizeof (char), dwSize , pFile);
           }
          while (TRUE);
          fflush (pFile);
          fclose (pFile);
    
          return TRUE;
       }
    

    2. Ich wollte neulich das Programm, dass auf dieser Seite(http://www.c-plusplus.net/forum/viewtopic-var-t-is-161929-and-highlight-is-capstatus.html) zu finden ist, in C schreiben. Allerdings bekomm ich von DEV-C++ immer diese Fehler:

    `CAPSTATUS' undeclared (first use in this function) 
    `CAPDRIVERCAPS' undeclared (first use in this function)
    

    Ich hab alle .a eingebunden(nur um zu überprüfen, ob es daran liegt) und diese Bibliotheken:

    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <Vfw.h>
    

    Aber es funktioniert einfach nicht!

    Ich hoffe, ihr könnt helfen,

    Felix



  • Hat den keiner eine Antwort? Zu keiner meiner Fragen? Ich hab herausgefunden, dass das Downloaden einer Datei wie wmv durch das Protokoll mms geschieht. Weiß jemand wie man so etwas macht?

    Kann das undeklarierte CAPSTATUS an einer veralteten Vfw.h liegen? Wenn ja, wie bekomm ich eine Neue?



  • Ich hab jetzt bei dem Capstatusprogramm oben einfach beide Strukturen wie folgt deklariert:

    typedef struct { 
        UINT     uiImageWidth; 
        UINT     uiImageHeight; 
        BOOL     fLiveWindow; 
        BOOL     fOverlayWindow; 
        BOOL     fScale; 
        POINT    ptScroll; 
        BOOL     fUsingDefaultPalette; 
        BOOL     fAudioHardware; 
        BOOL     fCapFileExists; 
        DWORD    dwCurrentVideoFrame; 
        DWORD    dwCurrentVideoFramesDropped; 
        DWORD    dwCurrentWaveSamples; 
        DWORD    dwCurrentTimeElapsedMS; 
        HPALETTE hPalCurrent; 
        BOOL     fCapturingNow; 
        DWORD    dwReturn; 
        UINT     wNumVideoAllocated; 
        UINT     wNumAudioAllocated; 
    } CAPSTATUS; 
    
    typedef struct { 
        UINT   wDeviceIndex; 
        BOOL   fHasOverlay; 
        BOOL   fHasDlgVideoSource; 
        BOOL   fHasDlgVideoFormat; 
        BOOL   fHasDlgVideoDisplay; 
        BOOL   fCaptureInitialized; 
        BOOL   fDriverSuppliesPalettes; 
        HANDLE hVideoIn; 
        HANDLE hVideoOut; 
        HANDLE hVideoExtIn; 
        HANDLE hVideoExtOut; 
    } CAPDRIVERCAPS;
    

    Aber jetzt kommen diese Fehler: 😡

    undefined reference to `capPreview'
    undefined reference to `capDriverConnect'
    undefined reference to `capDriverGetCaps'
    undefined reference to `capDlgVideoFormat'
    undefined reference to `capGetStatus'
    undefined reference to `capPreviewRate'
    


  • Die Frage wegen dem Download hat sich nach diesem Link erledigt: http://www.delphi-forum.de/viewtopic.php?p=475631&sid=2fbad5cf648107dbc1dc125d62e295d7

    Aber könnt ihr mir bei der zweiten Frage helfen?


Anmelden zum Antworten