Code Bool loadfileresource ( Const Wstring & Strname, hmodule hdll,
Int Resourceid, String & Outputbuf)
{
Hglobal hresourceloaded; // Handle to loaded Resource
Hrsrc hres; // Handle/PTR to res. info.
Char * Lpreslock; // Pointer to resource data
DWORD dwsizeres;
Hres=Findresourcew (hdll, makeintresource (resourceid), strname. c_str ());
Hresourceloaded=Loadresource (hdll, hres );
Lpreslock=(Char *) Lockresource (hresourceloaded );
Dwsizeres=Sizeofresource (hdll, hres );
Char * Pbuf = New Char [Dwsizeres + 1 ];
If (Null = Pbuf)
{
Cout < " Alloc memory for storing the XML schema file failed. " < Endl;
Return False;
}
Zeromemory (pbuf, dwsizeres + 1 );
memcpy (pbuf, lpreslock, dwsizeres);
outputbuf. clear ();
outputbuf. assign (pbuf);
Delete [] pbuf;
return true;
}
bool loaddiskfile ( const wstring & filename, string & outputbuf)
{< br> bool retv = false;
file * schemafile = NULL;
If(Filename. Empty ()|(0 ! =_ Wfopen_s (&Schemafile, filename. c_str (), L"R + T")))
ReturnRetv;
Fseek (schemafile, 0 , Seek_end );
Long Filelen = Ftell (schemafile );
Char * Pfilebuf = New Char [Filelen];
If (Null = Pfilebuf)
{
Fclose (schemafile );
Return Retv;
}
Memset (pfilebuf, 0 , Filelen );
Fseek (schemafile, 0 , Seek_set );
Long Readcount = ( Long ) Fread (pfilebuf, 1 , Filelen, schemafile );
If (Feof (schemafile) && 0 ! = Readcount)
{
Outputbuf. Assign (pfilebuf );
Retv = True;
}
Fclose (schemafile );
Delete [] pfilebuf;
ReturnRetv;
}