Partager via


Méthode IWICProgressiveLevelControl ::SetCurrentLevel (wincodec.h)

Spécifie le niveau à récupérer lors de l’appel suivant à CopyPixels.

Syntaxe

HRESULT SetCurrentLevel(
  [in] UINT nLevel
);

Paramètres

[in] nLevel

Type : UINT

Spécifie le niveau à retourner ensuite. S’il est supérieur au nombre total de niveaux pris en charge, une erreur est retournée.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Remarques

Un appel n’a pas besoin de demander tous les niveaux pris en charge. Si un appelant demande le niveau 1, sans avoir précédemment demandé le niveau 0, les bits retournés par l’appel suivant à CopyPixels incluent les deux niveaux.

Si le niveau demandé n’est pas valide, l’erreur retournée est WINCODEC_ERR_INVALIDPROGRESSIVELEVEL.

Exemples

Les utilisateurs doivent utiliser cette méthode pour itérer au sein des niveaux progressifs d’une image JPEG progressive plutôt que la méthode GetCurrentLevel . Les niveaux progressifs JPEG sont déterminés par l’image et n’ont pas de nombre de niveaux fixes. L’utilisation de la méthode GetCurrentLevel force l’application à attendre que tous les niveaux progressifs soient téléchargés avant de pouvoir retourner. Au lieu de cela, les applications doivent utiliser le code suivant pour itérer au sein des niveaux progressifs d’une image JPEG progressive.

IWICProgressiveLevelControl *pProgressive = NULL;

HRESULT hr = (pBitmapFrame->QueryInterface(
   IID_IWICProgressiveLevelControl, 
   (void**) &pProgressive));
                
if (SUCCEEDED(hr))
{
   for (UINT uCurrentLevel = 0; SUCCEEDED(hr); uCurrentLevel++)
   {
      hr = pProgressive->SetCurrentLevel(uCurrentLevel);
      if (WINCODEC_ERR_INVALIDPROGRESSIVELEVEL == hr)
      {
         // No more levels
         break;
      }

      if (SUCCEEDED(hr))
      {
         // Output the current level
         hr = pBitmapFrame->CopyPixels(...);
      }                      
   }
}

if (pProgressive)
{
   pProgressive->Release();
}	

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête wincodec.h
DLL Windowscodecs.dll

Voir aussi

IWICProgressiveLevelControl

Vue d’ensemble du décodage progressif