Click here to Skip to main content
15,891,136 members
Home / Discussions / C#
   

C#

 
QuestionFILETIME implementation in C# Pin
Member 1206160029-Oct-15 21:27
Member 1206160029-Oct-15 21:27 
AnswerRe: FILETIME implementation in C# Pin
John Torjo29-Oct-15 23:02
professionalJohn Torjo29-Oct-15 23:02 
GeneralRe: FILETIME implementation in C# Pin
Member 1206160030-Oct-15 0:10
Member 1206160030-Oct-15 0:10 
GeneralRe: FILETIME implementation in C# Pin
John Torjo30-Oct-15 0:46
professionalJohn Torjo30-Oct-15 0:46 
AnswerRe: FILETIME implementation in C# Pin
Richard MacCutchan29-Oct-15 23:06
mveRichard MacCutchan29-Oct-15 23:06 
GeneralRe: FILETIME implementation in C# Pin
Member 1206160030-Oct-15 0:09
Member 1206160030-Oct-15 0:09 
GeneralRe: FILETIME implementation in C# Pin
Richard MacCutchan30-Oct-15 1:05
mveRichard MacCutchan30-Oct-15 1:05 
QuestionVS_FIXEDFILEINFO implementation in C# Pin
Member 1206160028-Oct-15 23:51
Member 1206160028-Oct-15 23:51 
I want to achieve in C#, same what this code achieves in C++. Is this possible? How? Preferable would be without using PInvoke

C#
void CVersion::GetVersion(DWORD *v1, DWORD *v2, DWORD *v3, DWORD *Build) const
{
  char Path[1024] ;
  DWORD Len1, Len2 ;
  VS_FIXEDFILEINFO *FileVerInf ;
  if(GetModuleFileName(m_hModule, Path, 1024))
  {
    if((Len1 = GetFileVersionInfoSize(Path, &Len2)) != 0)
    {
      BYTE *InfoBlob = NULL ;
      try
      {
        LPSTR lpstrVffInfo ;
        UINT  uVersionLen  ;
        InfoBlob = new BYTE[Len1+255] ;
        if(!InfoBlob) throw -1 ;
        lpstrVffInfo = (LPSTR)InfoBlob ;
        GetFileVersionInfo(Path, Len2, Len1, lpstrVffInfo) ;

        BOOL bRetCode = VerQueryValue((LPVOID)lpstrVffInfo,
         (LPSTR)"\\",
          (LPVOID *)&FileVerInf,//lpVersion,
          (UINT *)&uVersionLen);

        if(!bRetCode)
        {
          FileVerInf->dwFileVersionLS = 0 ;
          FileVerInf->dwFileVersionMS = 0 ;
        }
        if(v1 != NULL) *v1 = (FileVerInf->dwFileVersionMS&0xffff0000)>>16 ;
        if(v2 != NULL) *v2 = FileVerInf->dwFileVersionMS&0x0000ffff ;
        if(v3 != NULL) *v3 = (FileVerInf->dwFileVersionLS&0xffff0000)>>16 ;
        if(Build != NULL) *Build = FileVerInf->dwFileVersionLS&0x0000ffff ;
      } catch (...) {;}

      if(InfoBlob != NULL) delete[] InfoBlob ;
    }
  }
}


If it is not possible without Pinvoke, can you show me some sample how to do this with PInvoke?
AnswerRe: VS_FIXEDFILEINFO implementation in C# Pin
Richard MacCutchan29-Oct-15 0:06
mveRichard MacCutchan29-Oct-15 0:06 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Member 1206160029-Oct-15 1:00
Member 1206160029-Oct-15 1:00 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Richard MacCutchan29-Oct-15 1:04
mveRichard MacCutchan29-Oct-15 1:04 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Member 1206160029-Oct-15 1:08
Member 1206160029-Oct-15 1:08 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Richard MacCutchan29-Oct-15 5:16
mveRichard MacCutchan29-Oct-15 5:16 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Member 1206160029-Oct-15 5:19
Member 1206160029-Oct-15 5:19 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Richard MacCutchan29-Oct-15 5:39
mveRichard MacCutchan29-Oct-15 5:39 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Member 1206160029-Oct-15 3:05
Member 1206160029-Oct-15 3:05 
AnswerRe: VS_FIXEDFILEINFO implementation in C# Pin
OriginalGriff29-Oct-15 0:11
mveOriginalGriff29-Oct-15 0:11 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Member 1206160029-Oct-15 0:59
Member 1206160029-Oct-15 0:59 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
OriginalGriff29-Oct-15 1:18
mveOriginalGriff29-Oct-15 1:18 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Member 1206160029-Oct-15 1:22
Member 1206160029-Oct-15 1:22 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Dave Kreskowiak29-Oct-15 4:03
mveDave Kreskowiak29-Oct-15 4:03 
GeneralRe: VS_FIXEDFILEINFO implementation in C# Pin
Member 1206160029-Oct-15 5:16
Member 1206160029-Oct-15 5:16 
Questionc# Pin
Member 1152168528-Oct-15 20:42
Member 1152168528-Oct-15 20:42 
AnswerRe: c# Pin
OriginalGriff28-Oct-15 22:44
mveOriginalGriff28-Oct-15 22:44 
AnswerRe: c# Pin
John Torjo28-Oct-15 23:15
professionalJohn Torjo28-Oct-15 23:15 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.