Usługi niestandardowe

[Funkcja skojarzona z tą stroną, I/O plików multimedialnych, jest starszą funkcją. Został zastąpiony przez Source Reader. czytnika źródła został zoptymalizowany pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał czytnika źródeł zamiast we/wy plików multimedialnych, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Usługi we/wy plików multimedialnych używają procedur we/wy do obsługi fizycznych danych wejściowych i wyjściowych skojarzonych z odczytywaniem i zapisywaniem w różnych typach systemów magazynowania, takich jak systemy archiwalne plików i systemy magazynowania baz danych. Wstępnie zdefiniowane procedury we/wy istnieją dla standardowych systemów plików i plików pamięci, ale można podać niestandardową procedurę we/wy na potrzeby uzyskiwania dostępu do unikatowego systemu magazynowania przy użyciu funkcjimmioInstallIOProc.

Aby otworzyć plik przy użyciu niestandardowej procedury we/wy, użyj funkcji mmioOtwórz. Dołącz znak plus (+) lub stałą CFSEPCHAR w nazwie pliku, aby oddzielić nazwę pliku fizycznego od nazwy elementu pliku, który chcesz otworzyć. Poniższy przykład otwiera element pliku o nazwie "element" z pliku o nazwie FILENAME. ŁUK:

mmioOpen("filename.arc+element", NULL, MMIO_READ); 

Gdy menedżer we/wy pliku napotka znak plus w nazwie pliku, analizuje rozszerzenie nazwy pliku, aby określić procedurę we/wy do skojarzenia z plikiem. W poprzednim przykładzie menedżer we/wy pliku spróbuje użyć procedury We/Wy skojarzonej z . Rozszerzenie nazwy pliku ARC; ta procedura we/wy zostałaby zainstalowana przy użyciu mmioInstallIOProc. Jeśli nie zainstalowano procedury we/wy, mmioOtwórz zwraca błąd.

Procedury we/wy muszą odpowiadać na następujące komunikaty:

Możesz również utworzyć niestandardowe komunikaty i wysłać je do procedury we/wy przy użyciu funkcjimmioSendMessage. Jeśli zdefiniujesz własne komunikaty, upewnij się, że są one zdefiniowane na lub powyżej wartości zdefiniowanej przez stałą MMIOM_USER.

Oprócz przetwarzania komunikatów procedura we/wy musi obsługiwać lDiskOffset elementu członkowskiego MMIOINFO struktury (wskazywane przez lpmmioinfo parametru mmioOpen). Element członkowski lDiskOffset musi zawsze zawierać przesunięcie pliku do lokalizacji, do którego będzie uzyskiwany dostęp następny komunikat MMIOM_READ lub MMIOM_WRITE. Przesunięcie jest określone w bajtach i jest względem początku pliku. Procedura we/wy może użyć adwInfo elementu członkowskiego, aby zachować wszelkie wymagane informacje o stanie. Procedura we/wy nie powinna modyfikować żadnych innych elementów członkowskich w strukturze MMIOINFO.