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 руб./мес


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




 70 - Создаем файл CreateStream() / ActiveX по шагам / Приложение

Шаг 70 - Создаем файл CreateStream()

Поток (файл) создается в хранилище с помощью функции CreateStream(), естественно при этом хранилище должно быть открыто:

HRESULT CreateStream
(
	const WCHAR *pwcsName,	//указатель на имя потока
	DWORD grfMode,		//режим доступа
	DWORD reserved1,		//зарезервировано 0
	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))
	{
		cout << "Ok open" << endl;
		LPSTREAM stream =  NULL;
		HRESULT hresult = pIStorage->CreateStream(L"MyFile",STGM_READWRITE|
			STGM_SHARE_EXCLUSIVE|STGM_CREATE,0, 0, &stream);
		stream->Release();  
		pIStorage->Release(); 
	}
	else
		cout << "Error open" << endl;

	return 0;
}

Если теперь просмотреть наше хранилище в DocFile View, то том можно увидеть наш файл.

70_1.gif (1593 b)

Обратите внимание на то, что в свойствах открываемого хранилища использован флаг STGM_READWRITE. Точно так же без проблем записывается файл и в Excel.

70_2.gif (2196 b)

И этот файл потом открывается. Вот Вам пример как и куда записать вирус. Кстати сюда можно и записывать информацию со сведениями о том, кто создал файл и кому он принадлежит.


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