# Compound Storage DLL.
# (FIXME: some methods are commented out. Commenting them in _WILL_
#  result in dataloss. Do it at your own risk.)
name	storage
type	win16
 
1 pascal StgCreateDocFileA(str long long ptr) StgCreateDocFile16
2 stub StgCreateDocFileOnILockBytes
3 pascal StgOpenStorage(str ptr long ptr long ptr) StgOpenStorage16
4 stub StgOpenStorageOnILockBytes
5 pascal StgIsStorageFile(str) StgIsStorageFile16
6 stub StgIsStorageILockBytes
7 stub StgSetTimes
#8 WEP
#9 ___EXPORTEDSTUB
103 stub DllGetClassObject

# Storage Interface functions. Starting at 500
# these are not exported in the real storage.dll, we use them
# as 16->32 relays. They use the cdecl calling convention.

# IStorage
500 cdecl IStorage16_QueryInterface(ptr ptr ptr) IStorage16_QueryInterface
501 cdecl IStorage16_AddRef(ptr) IStorage16_AddRef
502 cdecl IStorage16_Release(ptr) IStorage16_Release
#503 cdecl IStorage16_CreateStream(ptr str long long long ptr) IStorage16_CreateStream
503 stub  IStorage16_CreateStream

504 cdecl IStorage16_OpenStream(ptr str ptr long long ptr) IStorage16_OpenStream
#505 cdecl IStorage16_CreateStorage(ptr str long long long ptr) IStorage16_CreateStorage
505 stub  IStorage16_CreateStorage
506 cdecl IStorage16_OpenStorage(ptr str ptr long ptr long ptr) IStorage16_OpenStorage
507 cdecl IStorage16_CopyTo(ptr long ptr ptr ptr) IStorage16_CopyTo
508 stub  IStorage16_MoveElementTo
509 cdecl IStorage16_Commit(ptr long) IStorage16_Commit
510 stub  IStorage16_Revert
511 stub  IStorage16_EnumElements
512 stub  IStorage16_DestroyElement
513 stub  IStorage16_RenameElement
514 stub  IStorage16_SetElementTimes
515 stub  IStorage16_SetClass
516 stub  IStorage16_SetStateBits
517 cdecl IStorage16_Stat(ptr ptr long) IStorage16_Stat

# IStream
518 cdecl IStream16_QueryInterface(ptr ptr ptr) IStream16_QueryInterface
519 cdecl IStream16_AddRef(ptr) IStream16_AddRef
520 cdecl IStream16_Release(ptr) IStream16_Release
521 cdecl IStream16_Read(ptr ptr long ptr) IStream16_Read
#522 cdecl IStream16_Write(ptr ptr long ptr) IStream16_Write
522 stub  IStream16_Write
523 cdecl IStream16_Seek(ptr long long long ptr) IStream16_Seek
524 stub  IStream16_SetSize
525 stub  IStream16_CopyTo
526 stub  IStream16_Commit
527 stub  IStream16_Revert
528 stub  IStream16_LockRegion
529 stub  IStream16_UnlockRegion
530 stub  IStream16_Stat
531 stub  IStream16_Clone
