Ejemplo n.º 1
0
long __stdcall FastIStorage::CreateStorage(const WCHAR *wzName,unsigned long,unsigned long,unsigned long,struct IStorage **ppstg)
	{
	FastIStorage * const pfs = new FastIStorage();
	pfs->AddRef(); // AddRef once for us, and once for the caller
	pfs->AddRef();
	pfs->m_wzName = new WCHAR[lstrlenW(wzName)+1];
	WideStrCopy((WCHAR *)wzName, pfs->m_wzName);

	*ppstg = pfs;

	m_vstg.AddElement(pfs);

	return S_OK;
	}
Ejemplo n.º 2
0
void NativePlayerWnd::SetStringToClipboard( const U16* text )
{
    if ( text && *text && OpenClipboard( 0 ) )
    {
        HGLOBAL globalMem = GlobalAlloc( GMEM_MOVEABLE | GMEM_DDESHARE, ( WideStrLen( text ) + 1 ) * 2 );
        U16* globalText = (U16*) GlobalLock( globalMem );
        if ( globalText )
        {
            WideStrCopy( globalText, text );
            GlobalUnlock( globalMem );
            EmptyClipboard();
            SetClipboardData( CF_UNICODETEXT, globalText );
        }
        CloseClipboard();
    }
}
Ejemplo n.º 3
0
void CompleteAutoSave(HANDLE hEvent, LPARAM lParam)
	{
	AutoSavePackage *pasp = (AutoSavePackage *)lParam;

	FastIStorage *pstgroot = pasp->pstg;

	IStorage *pstgDisk;

	WCHAR *wzSaveName = L"AutoSave";
	WCHAR *wzSaveExtension = L".vpx";
	WCHAR wzSuffix[32];
	_itow_s(pasp->tableindex, wzSuffix, sizeof(wzSuffix)/sizeof(WCHAR), 10);

	WCHAR * const wzT = new WCHAR[MAX_PATH + 32 + lstrlenW(wzSaveName) + lstrlenW(wzSaveExtension)+ 1];

	WideStrCopy(g_pvp->m_wzMyPath, wzT);
	WideStrCat(wzSaveName, wzT);
	WideStrCat(wzSuffix, wzT);
	WideStrCat(wzSaveExtension, wzT);
	
	//MAKE_WIDEPTR_FROMANSI(wszCodeFile, m_szFileName);

	STGOPTIONS stg;
	stg.usVersion = 1;
	stg.reserved = 0;
	stg.ulSectorSize = 4096;

	HRESULT hr;
	if(SUCCEEDED(hr = StgCreateStorageEx(wzT, STGM_TRANSACTED | STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE,
		STGFMT_DOCFILE, 0, &stg, 0, IID_IStorage, (void**)&pstgDisk)))
		{
		pstgroot->CopyTo(0, NULL, NULL, pstgDisk);
		hr = pstgDisk->Commit(STGC_DEFAULT);
		pstgDisk->Release();
		}

	pstgroot->Release();

	SetEvent(hEvent);

	PostMessage(pasp->HwndTable, DONE_AUTOSAVE, (WPARAM)hEvent, hr);

	delete [] wzT;
	delete pasp;
	}