782 __ ___________Часть V. Инструментарий программиста

if (FVData) {

sprintf(subBlockName, "\\StringFileInfo\\%081x\\%s",

*(uint32 *)TransBlock, (LPSTR) "ProctuctVersion");

return FVData ? ::VerQueryValue(FVData, subBlockName,

(void far* far*)sprodVersion, svSize) : false;

} else

return false;

}

bool ProjectRCVersion::GetCopyright(LPSTR& copyright)

{ .

uint • vSize;

TAPointer<char> subBlockName = new char[255];

if (FVData) {

sprintf(subBlockName, "\\StringFileInfo\\%081x\\%s",

* (uint32 *)TransBlock, (LPSTR)-"LegalCopyright") ;

return FVData ? ::VerQueryValue(FVData, subBlockName,

(void far* far*)scopyright, &vSize) : false;

} else * return false;

}

bool ProjectRCVersion::GetDebug(LPSTR& debug) {

uint vSize;

TAPointer<char> subBlockName = new char[255];

if (FVData) {

sprintf(subBlockName, "\\StringFileInfo\\%081x\\%s",

*(uint32 *)TransBlock,(LPSTR)"SpecialBuild") ;

return FVData ? ::VerQueryValue(FVData, subBlockName,

(void far* far*)sdebug, &vSize) : false;

} else return false;

}

// Реализация ResTextAboutDIg

//-——__——__———_————————_——————————

// ResTextAboutDIg

//

// Конструктор и деструктор.

//

ResTextAboutDIg::ResTextAboutDIg(TWindow* parent, TResId resld, TModule* module)

TDialog(parent, resld, module) (

// Можете включить сюда свой код конструктора. }