Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Esta classe representa um ficheiro mapeado em memória.
Importante
Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.
Sintaxe
class CAtlFileMappingBase
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| CAtlFileMappingBase::CAtlFileMappingBase | O construtor. |
| CAtlFileMappingBase::~CAtlFileMappingBase | O destruidor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CAtlFileMappingBase::CopyFrom | Chame este método para copiar a partir de um objeto de mapeamento de ficheiros. |
| CAtlFileMappingBase::GetData | Chame este método para obter os dados de um objeto de mapeamento de ficheiros. |
| CAtlFileMappingBase::GetHandle | Chame este método para devolver o handle do ficheiro. |
| CAtlFileMappingBase::GetMappingSize | Chame este método para obter o tamanho do mapeamento a partir de um objeto de mapeamento de ficheiro. |
| CAtlFileMappingBase::MapFile | Chame este método para criar um objeto de mapeamento de ficheiros. |
| CAtlFileMappingBase::MapSharedMem | Chame este método para criar um objeto de mapeamento de ficheiros que permita acesso total a todos os processos. |
| CAtlFileMappingBase::OpenMapping | Chame este método para devolver um handle ao objeto de mapeamento do ficheiro. |
| CAtlFileMappingBase::Unmap | Chame este método para desmapear um objeto de mapeamento de ficheiros. |
Operadores Públicos
| Nome | Description |
|---|---|
| CAtlFileMappingBase::operator = | Define o objeto atual de mapeamento de ficheiros para outro objeto de mapeamento de ficheiros. |
Observações
O mapeamento de ficheiros é a associação do conteúdo de um ficheiro com uma parte do espaço de endereçamento virtual de um processo. Esta classe fornece métodos para criar objetos de mapeamento de ficheiros que permitem aos programas aceder e partilhar dados facilmente.
Para mais informações, consulte Mapeamento de Ficheiros no SDK do Windows.
Requerimentos
Cabeçalho: atlfile.h
CAtlFileMappingBase::CAtlFileMappingBase
O construtor.
CAtlFileMappingBase(CAtlFileMappingBase& orig);
CAtlFileMappingBase() throw();
Parâmetros
orig
O objeto original de mapeamento do ficheiro para copiar e criar o novo objeto.
Observações
Cria um novo objeto de mapeamento de ficheiros, opcionalmente usando um objeto existente. Ainda é necessário chamar o CAtlFileMappingBase::MapFile para abrir ou criar o objeto de mapeamento de ficheiro para um ficheiro específico.
Example
int OpenMyFileMap()
{
// Create the file-mapping object.
CAtlFileMappingBase myFileMap;
// Create a file.
CAtlFile myFile;
myFile.Create(_T("myMapTestFile"),
GENERIC_READ|GENERIC_WRITE|STANDARD_RIGHTS_ALL,
FILE_SHARE_READ|FILE_SHARE_WRITE,
OPEN_ALWAYS);
// The file handle.
HANDLE hFile = (HANDLE)myFile;
// Test the file has opened successfully.
ATLASSERT(hFile != INVALID_HANDLE_VALUE);
// Open the file for file-mapping.
// Must give a size as the file is zero by default.
if (myFileMap.MapFile(hFile,
1024,
0,
PAGE_READWRITE,
FILE_MAP_READ) != S_OK)
{
CloseHandle(hFile);
return 0;
}
// Confirm the size of the mapping file.
ATLASSERT(myFileMap.GetMappingSize() == 1024);
// Now the file-mapping object is open, a second
// process could access the filemap object to exchange
// data.
return 0;
}
CAtlFileMappingBase::~CAtlFileMappingBase
O destruidor.
~CAtlFileMappingBase() throw();
Observações
Liberta quaisquer recursos alocados pela classe e chama o método CAtlFileMappingBase::Unmap .
CAtlFileMappingBase::CopyFrom
Chame este método para copiar a partir de um objeto de mapeamento de ficheiros.
HRESULT CopyFrom(CAtlFileMappingBase& orig) throw();
Parâmetros
orig
O objeto original de mapeamento do ficheiro para copiar.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
CAtlFileMappingBase::GetData
Chame este método para obter os dados de um objeto de mapeamento de ficheiros.
void* GetData() const throw();
Valor de retorno
Devolve um ponteiro para os dados.
CAtlFileMappingBase::GetHandle
Chame este método para devolver um handle ao objeto de mapeamento do ficheiro.
HANDLE GetHandle() throw ();
Valor de retorno
Devolve um handle ao objeto de mapeamento do ficheiro.
CAtlFileMappingBase::GetMappingSize
Chame este método para obter o tamanho do mapeamento a partir de um objeto de mapeamento de ficheiro.
SIZE_T GetMappingSize() throw();
Valor de retorno
Devolve o tamanho do mapeamento.
Example
Veja o exemplo de CAtlFileMappingBase::CAtlFileMappingBase.
CAtlFileMappingBase::MapFile
Chame este método para abrir ou criar um objeto de mapeamento de ficheiros para o ficheiro especificado.
HRESULT MapFile(
HANDLE hFile,
SIZE_T nMappingSize = 0,
ULONGLONG nOffset = 0,
DWORD dwMappingProtection = PAGE_READONLY,
DWORD dwViewDesiredAccess = FILE_MAP_READ) throw();
Parâmetros
hFile
Handle para o ficheiro a partir do qual criar um objeto de mapeamento.
hFile deve ser válido e não pode ser definido para INVALID_HANDLE_VALUE.
nMappingSize
O tamanho do mapeamento. Se for 0, o tamanho máximo do objeto de mapeamento do ficheiro é igual ao tamanho atual do ficheiro identificado por hFile.
nDeslocamento
O deslocamento do ficheiro onde começa o mapeamento. O valor de deslocamento deve ser um múltiplo da granularidade da alocação de memória do sistema.
dwMappingProtection
A proteção desejada para a visualização do ficheiro quando o ficheiro é mapeado. Veja flProtect no CreateFileMapping no SDK do Windows.
dwViewDesiredAccess
Especifica o tipo de acesso à vista do ficheiro e, portanto, a proteção das páginas mapeadas pelo ficheiro. Veja dwDesiredAccess em MapViewOfFileEx no SDK do Windows.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Depois de criado um objeto de mapeamento de ficheiro, o tamanho do ficheiro não deve exceder o tamanho do objeto de mapeamento de ficheiro; Se acontecer, nem todo o conteúdo do ficheiro estará disponível para partilha. Para mais detalhes, consulte CreateFileMapping e MapViewOfFileEx no SDK do Windows.
Example
Veja o exemplo de CAtlFileMappingBase::CAtlFileMappingBase.
CAtlFileMappingBase::MapSharedMem
Chame este método para criar um objeto de mapeamento de ficheiros que permita acesso total a todos os processos.
HRESULT MapSharedMem(
SIZE_T nMappingSize,
LPCTSTR szName,
BOOL* pbAlreadyExisted = NULL,
LPSECURITY_ATTRIBUTES lpsa = NULL,
DWORD dwMappingProtection = PAGE_READWRITE,
DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS) throw();
Parâmetros
nMappingSize
O tamanho do mapeamento. Se 0, o tamanho máximo do objeto de mapeamento de ficheiros é igual ao tamanho atual do objeto de mapeamento identificado por szName.
szName
O nome do objeto de mapeamento.
pbAlAlready Existid
Aponta para um valor BOOL definido como TRUE se o objeto de mapeamento já existisse.
LPSA
O ponteiro para uma SECURITY_ATTRIBUTES estrutura que determina se o handle devolvido pode ser herdado por processos filhos. Veja lpAttributes no CreateFileMapping no SDK do Windows.
dwMappingProtection
A proteção desejada para a visualização do ficheiro, quando o ficheiro está mapeado. Veja o flProtect no CreateFileMapping SDK do Windows.
dwViewDesiredAccess
Especifica o tipo de acesso à vista do ficheiro e, portanto, a proteção das páginas mapeadas pelo ficheiro. Veja dwDesiredAccess em MapViewOfFileEx no SDK do Windows.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
MapShareMem permite que um objeto de mapeamento de ficheiros existente, criado pelo CreateFileMapping, seja partilhado entre processos.
CAtlFileMappingBase::OpenMapping
Chame este método para abrir um objeto de mapeamento de ficheiros nomeado para o ficheiro especificado.
HRESULT OpenMapping(
LPCTSTR szName,
SIZE_T nMappingSize,
ULONGLONG nOffset = 0,
DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS) throw();
Parâmetros
szName
O nome do objeto de mapeamento. Se existir um handle aberto para um objeto de mapeamento de ficheiros com este nome e o descritor de segurança no objeto de mapeamento não entrar em conflito com o parâmetro dwViewDesiredAccess , a operação de abertura tem sucesso.
nMappingSize
O tamanho do mapeamento. Se 0, o tamanho máximo do objeto de mapeamento de ficheiros é igual ao tamanho atual do objeto de mapeamento identificado por szName.
nDeslocamento
O deslocamento do ficheiro onde começa o mapeamento. O valor de deslocamento deve ser um múltiplo da granularidade da alocação de memória do sistema.
dwViewDesiredAccess
Especifica o tipo de acesso à vista do ficheiro e, portanto, a proteção das páginas mapeadas pelo ficheiro. Veja dwDesiredAccess em MapViewOfFileEx no SDK do Windows.
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Em compilações de depuração, ocorrerá um erro de asserção se os parâmetros de entrada forem inválidos.
CAtlFileMappingBase::operator =
Define o objeto atual de mapeamento de ficheiros para outro objeto de mapeamento de ficheiros.
CAtlFileMappingBase& operator=(CAtlFileMappingBase& orig);
Parâmetros
orig
O objeto atual de mapeamento de ficheiros.
Valor de retorno
Devolve uma referência ao objeto atual.
CAtlFileMappingBase::Unmap
Chame este método para desmapear um objeto de mapeamento de ficheiros.
HRESULT Unmap() throw();
Valor de retorno
Devolve S_OK em caso de sucesso, ou um erro HRESULT em caso de falha.
Observações
Consulte UnmapViewOfFile no SDK do Windows para mais detalhes.
Consulte também
Classe CAtlFileMapping
Visão geral da classe