Compartilhar via


StgCreateDocfileOnILockBytes

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função cria e abre um novo objeto armazenamento arquivo composto em parte superior de um objeto matriz de bytes fornecido pelo chamador. O objeto armazenamento oferece suporte a implementação OLE - fornecido, compostos - arquivo para o IStorage interface.

Syntax

WINOLEAPI StgCreateDocfileOnILockBytes( 
  ILockBytes* plkbyt, 
  DWORD grfMode, 
  DWORD reserved, 
  IStorage** ppstgOpen 
); 

Parameters

  • plkbyt
    [no] Ponteiro para o ILockBytes interface sobre a subjacente objeto matriz de bytes no qual criar um arquivo composto.
  • grfMode
    [no] Especifica o modo de acesso para usar ao abrir o novo arquivo composto. Para obter mais informações, consulte o STGM enumeração.
  • Reservado
    [no] Reservado para uso futuro. Definido como zero.
  • ppstgOpen
    [out] Ponteiro para a localidade das IStorage ponteiro sobre o novo objeto armazenamento.

Return Value

Um dos valores descritos a seguinte tabela é retornada.

Valor Descrição

S_OK

Indica que o arquivo composto foi criado com êxito.

STG_E_ACCESSDENIED

Indica que acessar foi negado porque o chamador tem permissão insuficiente, ou outro chamador tem o arquivo aberto e bloqueado.

STG_E_FILEALREADYEXISTS

Indica que o arquivo composto já existe e o grfMode parâmetro está definido como STGM_FAILIFTHERE.

STG_E_INSUFFICIENTMEMORY

Indica que o objeto armazenamento não foi criado devido a uma falta de memória.

STG_E_INVALIDPOINTER

Indica um incorreto ponteiro estava na pLkbyt parâmetro ou o ppStgOpen parâmetro.

STG_E_INVALIDFLAG

Indica um incorreto combinação sinalizador estava na grfMode parâmetro.

STG_E_TOOMANYOPENFILES

Indica o objeto armazenamento não foi criado manipula uma falta de arquivo devido a.

STG_E_LOCKVIOLATION

Indica que acessar foi negado porque outro chamador tem o arquivo aberto e bloqueado.

STG_E_SHAREVIOLATION

Indica que acessar foi negado porque outro chamador tem o arquivo aberto e bloqueado.

STG_S_CONVERTED

Indica que o arquivo composto foi convertido com êxito. O original objeto matriz byte foi convertido com êxito IStorage formato.

Essa função também pode retornar qualquer erros sistema de arquivos ou Win32 erros ajustada em um HRESULT, ou ILockBytes valores de retorno de erro interface.

Remarks

O StgCreateDocfileOnILockBytes e StgOpenStorageOnILockBytes funções não estiverem disponível para o non-Desktop compatível implementação by means of CESYSGEN.

O StgCreateDocfileOnILockBytes função cria um objeto armazenamento em parte superior de um objeto matriz byte usando a implementação arquivo COM - fornecido, compostos - da IStorage interface. StgCreateDocfileOnILockBytes Pode ser usado para armazenar um documento em um banco de dados relacional. A matriz byte que é indicado pela pLkbyt parâmetro, que aponta para o ILockBytes Sobre o objeto interface é usado para o subjacente armazenamento no local de um arquivo em disco.

Exceto para especificar um objeto matriz programador - fornecido byte -, StgCreateDocfileOnILockBytes é semelhante de StgCreateDocfile função.

O arquivo composto recém-criado será aberto de acordo com os modos acessar na grfMode parâmetro. Para fins conversão, o arquivo será sempre considerado já existem. Como resultado, ele não é útil usar o valor STGM_FAILIFTHERE, pois ele sempre causa um erro a ser retornado. No entanto, STGM_CREATE e STGM_CONVERT são ambos ainda útil.

A capacidade compilar um arquivo composto em parte superior de um objeto matriz byte é fornecido ao suporte tendo os dados, underneath um IStorage e IStream estrutura de árvore, morar em um espaço non-Persistent. Dada essa funcionalidade, não há nada impedindo que um documento que é armazenados em um arquivo de usar este instalações. De exemplo, um contêiner pode fazer isso para minimizar o impacto em seu formato arquivo causado pela adoção COM. No entanto, é recomendável que os documentos COM adotam o IStorage interface para seus próprios externa-nível armazenamento. Isso tem a seguinte vantagens:

  • Estrutura de armazenamento do documento é o mesmo como sua estrutura armazenamento quando for um objeto incorporado. Isso reduz o número de casos o aplicativo precisa identificador.
  • Um pode escrever ferramentas para acessar o embeddings OLE e Links o documento sem conhecimento especial do formato arquivo de documento. Um exemplo de tal uma ferramenta é um utilitário copiar que copia todos os documentos incluídos em um contêiner que contém objetos vinculados. Um utilitário copiar assim precisa acessar os links contidos para determinar a extensão de arquivos a serem copiados.
  • O IStorage implementação resolve o problema de como a confirmação as alterações para o arquivo. Um aplicativo usando o ILockBytes interface deve identificador esses problemas próprio.
  • Arquivo futuros sistemas serão provavelmente implementar o IStorage e IStream Interfaces como seus abstrações nativas, vez camada em parte superior de uma matriz byte como é feito nos arquivos compostos. Tais um sistema de arquivos poderia ser compilado para que documentos usando o IStorage interface como seu nível externo estrutura de confinamento seria get uma eficiência automática ganhar tendo a disposição simplificada quando arquivos são salvos em sistema de arquivos o novo.

Passando para esta função qualquer inválido e, em algumas circunstâncias, NULL ponteiros resulta em terminação inesperada do aplicativo.

Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.

Requirements

Header objbase.h
Library ole32.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

ILockBytes
IStorage
IStream
StgCreateDocfile