C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 71 - Отрываем поток OpenStream() / ActiveX по шагам / Приложение

Шаг 71 - Отрываем поток OpenStream()

Для того, чтобы работать с файлами в хранилище необходимо открыть поток (файл):

HRESULT OpenStream
(
	const WCHAR *pwcsName,	//указатель на имя открываемого потка
	void *reserved1,		//зарезирвированно NULL
	DWORD grfMode,		//режим доступа
	DWORD reserved2,		//зарезирвированно 0
	IStream **ppstm		//указатель на поток
);

Как всегда ошибок и кодов возврата может быть много. Если все нормально, то S_OK.

Пример открытия потока:

#include "stdafx.h"
#include "windows.h"
#include "ole2.h"
#include "iostream.h"

int main(int argc, char* argv[])
{
	OLECHAR filename[20];
	wcscpy(filename,L"test.stg");
	LPSTORAGE pIStorage=NULL;
	HRESULT rez;
	rez=StgOpenStorage(filename,NULL, STGM_READWRITE | 
		STGM_SHARE_EXCLUSIVE ,NULL,0,&pIStorage);

	if (!FAILED(rez))
	{
         
	    HRESULT hresult;
		LPSTREAM stream=NULL;
		hresult = pIStorage->OpenStream(L"MyFile", NULL,
			STGM_READWRITE|STGM_DIRECT|STGM_SHARE_EXCLUSIVE,0, &stream);
		if (!FAILED(hresult))
		{
			cout << "ok open file" << endl;
		}
		else cout << "error open file" << endl;
		stream->Release(); 
		pIStorage->Release(); 
	}
	else cout << "Error open" << endl;

	return 0;
}

| |
Автор Каев Артем.
[AD]