📄 rmafiles.pas
字号:
(****************************************************************************
*
* Interface:
*
* IRMARequest
*
* Purpose:
*
* Object to manage the RFC822 headers sent by the client
*
* IID_IRMARequest:
*
* {00000213-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMARequest: TGUID = '{00000213-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMARequest}
CLSID_IRMARequest: TGUID = '{00000213-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_IRMARequest}
type
IRMARequest = interface (IUnknown)
['{00000213-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMARequest::SetRequestHeaders
* Purpose:
* Sets the headers that will be sent in the RFC822 header section
* of the request message
*)
function SetRequestHeaders(pRequestHeaders: IRMAValues): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMARequest::GetRequestHeaders
* Purpose:
* Gets the headers that were sent in the RFC822 header section
* of the request message
*)
function GetRequestHeaders(out pRequestHeaders: IRMAValues): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMARequest::SetResponseHeaders
* Purpose:
* Sets the headers that will be returned in the RFC822 header
* section of the response message
*)
function SetResponseHeaders(pResponseHeaders: IRMAValues): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMARequest::GetResponseHeaders
* Purpose:
* Gets the headers that were returned in the RFC822 header section
* of the response message
*)
function GetResponseHeaders(out pResponseHeaders: IRMAValues): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMARequest::SetURL
* Purpose:
* Sets the fully qualified path associated with a file object.
* Note: On the server, this path does not include the file system
* mount point.
*)
function SetURL(pURL: PChar): HRESULT; stdcall;
(************************************************************************
* Method:
* IRMARequest::GetURL
* Purpose:
* Returns the fully qualified path associated with a file object.
* Note: On the server, this path does not include the file system
* mount point.
*
* Note: The returned pointer's lifetime expires as soon as the
* caller returns from a function which was called from the RMA
* core (i.e. when you return control to the RMA core)
*)
function GetURL(var pURL: PChar): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMARequest}
(****************************************************************************
*
* Interface:
*
* IRMAFileSystemManager
*
* Purpose:
*
* Gives out File Objects based on URLs
*
* IID_IRMAFileSystemManager:
*
* {00000207-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAFileSystemManager: TGUID = '{00000207-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAFileSystemManager}
CLSID_IRMAFileSystemManager: TGUID = '{00000207-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_IRMAFileSystemManager}
type
IRMAFileSystemManager = interface (IUnknown)
['{00000207-0901-11d1-8B06-00A024406D59}']
function Init(pFileManagerResponse: IRMAFileSystemManagerResponse): HRESULT; stdcall;
(* GetFileObject attempts to locate an existing file via the DoesExist
* method in each file system's objects, and returns that object through
* FSManagerResponse->FileObjectReady
*)
function GetFileObject(pRequest: IRMARequest; pAuthenticator: IRMAAuthenticator): HRESULT; stdcall;
(* GetNewFileObject is similar to GetFileObject except that no DoesExist
* checks are done. The first file system that matches the mount point
* or protocol for the path in the request object creates the file
* which is then returned through FileObjectReady. This is especially
* useful for those who wish to open a brand new file for writing.
*)
function GetNewFileObject(pRequest: IRMARequest; pAuthenticator: IRMAAuthenticator): HRESULT; stdcall;
function GetRelativeFileObject(pOriginalObject: IUnknown; pPath: PChar): HRESULT; stdcall;
(*
* The following method is deprecated and should return PNR_NOTIMPL
*)
function GetDirObjectFromURL(pURL: PChar): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAFileSystemManager}
(****************************************************************************
*
* Interface:
*
* IRMAFileExistsResponse
*
* Purpose:
*
* Response interface for IRMAFileExists. Must be implemented.
*
* IID_IRMAFileExistsResponse:
*
* {0000020A-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAFileExistsResponse: TGUID = '{0000020A-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAFileExistsResponse}
type
IRMAFileExistsResponse = interface (IUnknown)
['{0000020A-0901-11d1-8B06-00A024406D59}']
function DoesExistDone(bExist: BOOL): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAFileExistsResponse}
(****************************************************************************
*
* Interface:
*
* IRMAFileExists
*
* Purpose:
*
* Checks for the existense of a file. Must be implemented.
*
* IID_IRMAFileExists:
*
* {00000209-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAFileExists: TGUID = '{00000209-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAFileExists}
type
IRMAFileExists = interface (IUnknown)
['{00000209-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAFileExists::DoesExist
* Purpose:
*)
function DoesExist(pPath: PChar; pFileResponse: IRMAFileExistsResponse): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAFileExists}
(****************************************************************************
*
* Interface:
*
* IRMAFileMimeMapperResponse
*
* Purpose:
*
* Response interface for IRMAFileMimeMapper.
* Optional interface.
*
* IID_IRMAFileMimeMapperResponse:
*
* {0000020C-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAFileMimeMapperResponse: TGUID = '{0000020C-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAFileMimeMapperResponse}
type
IRMAFileMimeMapperResponse = interface (IUnknown)
['{0000020C-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAFileMimeMapperResponse::MimeTypeFound
* Purpose:
* Notification interface provided by users of the IRMAFileMimeMapper
* interface. This method is called by the IRMAFileObject when the
* initialization of the file is complete, and the Mime type is
* available for the request file. If the file is not valid for the
* file system, the status PNR_FAILED should be returned,
* with a mime type of NULL. If the file is valid but the mime type
* is unknown, then the status PNR_OK should be returned with
* a mime type of NULL.
*
*)
function MimeTypeFound(status: PN_RESULT; pMimeType: PChar): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAFileMimeMapperResponse}
(****************************************************************************
*
* Interface:
*
* IRMAFileMimeMapper
*
* Purpose:
*
* Allows you to specify a mime type for a specific file.
* Optional interface.
*
* IID_IRMAFileMimeMapper:
*
* {0000020B-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAFileMimeMapper: TGUID = '{0000020B-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAFileMimeMapper}
type
IRMAFileMimeMapper = interface (IUnknown)
['{0000020B-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAFileMimeMapper::FindMimeType
* Purpose:
*)
function FindMimeType(pURL: PChar; pMimeMapperResponse: IRMAFileMimeMapperResponse): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMAFileMimeMapper}
(****************************************************************************
*
* Interface:
*
* IRMABroadcastMapperResponse
*
* Purpose:
*
* Response interface for IRMABroadcastMapper.
* Implementation only required by broadcast plugin file systems.
*
* IID_IRMABroadcastMapperResponse:
*
* {0000020E-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMABroadcastMapperResponse: TGUID = '{0000020E-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMABroadcastMapperResponse}
type
IRMABroadcastMapperResponse = interface (IUnknown)
['{0000020E-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMABroadcastMapperResponse::BroadcastTypeFound
* Purpose:
* Notification interface provided by users of the IRMABroadcastMapper
* interface. This method is called by the File Object when the
* initialization of the file is complete, and the broadcast type is
* available for the request file. If the file is not valid for the
* file system, the status PNR_FAILED should be returned,
* with the broadcast type set to NULL.
*
*)
function BroadcastTypeFound(status: PN_RESULT; pBroadcastType: PChar): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMABroadcastMapperResponse}
(****************************************************************************
*
* Interface:
*
* IRMABroadcastMapper
*
* Purpose:
*
* Associates a file with a broadcast format plugin.
* Implementation only required by broadcast plugin file systems.
*
* IID_IRMABroadcastMapper:
*
* {0000020D-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMABroadcastMapper: TGUID = '{0000020D-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMABroadcastMapper}
type
IRMABroadcastMapper = interface (IUnknown)
['{0000020D-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMABroadcastMapper::FindBroadcastType
* Purpose:
*)
function FindBroadcastType(pURL: PChar; pBroadcastMapperResponse: IRMABroadcastMapperResponse): HRESULT; stdcall;
end;
{$EXTERNALSYM IRMABroadcastMapper}
(****************************************************************************
*
* Interface:
*
* IRMAGetFileFromSamePoolResponse
*
* Purpose:
*
* Gives out File Objects based on filenames and relative "paths"
*
* IID_IRMAGetFileFromSamePoolResponse:
*
* {00000210-0901-11d1-8B06-00A024406D59}
*
*)
const
IID_IRMAGetFileFromSamePoolResponse: TGUID = '{00000210-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM IID_IRMAGetFileFromSamePoolResponse}
CLSID_IRMAGetFileFromSamePoolResponse: TGUID = '{00000210-0901-11d1-8B06-00A024406D59}';
{$EXTERNALSYM CLSID_IRMAGetFileFromSamePoolResponse}
type
IRMAGetFileFromSamePoolResponse = interface (IUnknown)
['{00000210-0901-11d1-8B06-00A024406D59}']
(************************************************************************
* Method:
* IRMAGetFileFromSamePoolResponse::FileObjectReady
* Purpose:
* To return another FileObject from the same pool.
*)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -