Az IWICMetadataBlockWriter implementálása
IWICMetadataBlockWriter
A keretszintű kódolási osztály implementálja ezt a felületet, hogy elérhetővé tegye az összes metaadatblokkot, és minden blokkhoz kérje a megfelelő metaadat-írót. Ha a képformátum támogatja a globális metaadatokat, az egyes kereteken kívül, ezt a felületet is implementálnia kell a tárolószintű kódoló osztályban. A metaadat-kezelők részletesebb ismertetéséhez tekintse meg a IWICMetadataBlockReader a WIC-Enabled dekóder implementálásáról szóló szakaszban található szakaszt.
interface IWICMetadataBlockWriter : IWICMetadataBlockReader
{
// All methods required
HRESULT InitializeFromBlockReader ( IWICMetadataBlockReader *pIMDBlockReader );
HRESULT GetWriterByIndex ( UINT nIndex, IWICMetadataWriter **ppIMetadataWriter );
HRESULT AddWriter (IWICMetadataWriter *pIMetadataWriter );
HRESULT SetWriterByIndex ( UINT nIndex, IWICMetadataWriter *pIMetadataWriter );
HRESULT RemoveWriterByIndex ( UINT nIndex );
}
InitializeFromBlockReader
InitializeFromBlockReader egy IWICMetadataBlockReader használatával inicializálja a blokkírót. A IWICMetadataBlockReader lekérheted a képet dekódoló dekóderből.
UINT blockCount = 0;
IWICMetadataReader* pMetadataReader = NULL;
IWICMetadataWriter** ppMetadataWriter = NULL;
HRESULT hr;
hr = m_pBlockReader->GetCount(&blockCount);
ppMetadataWriter = IWICMetadataWriter*[blockCount];
for (UINT x=0; x < blockCount; x++)
{
hr = m_pBlockReader->GetReaderByIndex(&pMetadataReader);
hr = m_pComponentFactory->CreateMetadataWriterFromReader(
pMetadataReader, NULL, &ppMetadataWriter[x]);
}
Mivel az IWICMetadataBlockWriter inicializálásakor a IWICMetadataBlockReader egy metaadat-írót hoz létre minden metaadat-olvasóhoz, amelyet a IWICMetadataBlockReader objektum tesz elérhetővé, az alkalmazásnak nem kell kifejezetten írót kérnie minden egyes metaadatblokkhoz.
GetWriterByIndex
GetWriterByIndex a IWICMetadataWriter objektumot adja vissza az n. metaadatblokkhoz, ahol n a nIndex paraméterben átadott érték. Ha nincs regisztrált metaadat-író, amely képes kezelni az n. blokk metaadatainak típusát, az összetevő-előállító visszaadja az Ismeretlen metaadat-kezelőt, amely bináris nagy objektumként (BLOB) kezeli a metaadat-blokkot. Egy bitsorozatként szerializálja, anélkül, hogy elemezni próbálná.
Szövegíró hozzáadása
AddWriter lehetővé teszi, hogy a hívó új metaadat-írót adjon hozzá. Erre akkor van szükség, ha egy alkalmazás a meglévő metaadatblokkok bármelyikétől eltérő formátumú metaadatokat szeretne hozzáadni. Előfordulhat például, hogy egy alkalmazás hozzá szeretne adni néhány XMP-metaadatot. Ha nincs meglévő XMP-metaadat-blokk, az alkalmazásnak példányosítania kell egy XMP-metaadat-írót, és a AddWriter metódust kell használnia, hogy belefoglalja a metaadat-írók gyűjteménybe.
ÍróBeállításaIndexSzerint
SetWriterByIndex a gyűjtemény egy adott indexéhez tartozó metaadat-író hozzáadására szolgál. Ha egy metaadat-író jelenleg létezik az adott indexben, az újat kell lecserélnie.
ÍróEltávolításaIndexAlapján
RemoveWriterByIndex a metaadat-írók eltávolítására szolgál a gyűjteményből.
Kapcsolódó témakörök
-
Koncepció
-
IWICBitmapFrameEncode implementálása