Source file: /~heha/hs/fakedate.zip/Version2/src/IWATCHSU.C

// Installationsüberwachung für Windows 95/NT
// Geändert 06/04 h#s

#include "iwatchsu.h"

// Hilfsfunktionen

LPTSTR GetFileNamePtr(LPCTSTR s) {
// Liefert Zeiger auf Dateiname, hinter letztes Zeichen aus \/:
 LPCTSTR m;
st: 				// m = Kandidat für Dateiname
 for(m=s;;s=CharNext(s)) switch (*s) {	// bei DBCS mehr vorrücken
  case T('\\'):
  case T('/'):
  case T(':'): s++; goto st;	// Einzelbyte, danach Anfang merken
  case 0: return (LPTSTR)m;
 }
}

LPTSTR GetFileNameExt(LPCTSTR s) {
// Liefert Zeiger auf Datei-Erweiterung, auf letzten, nicht-ersten Punkt
// oder, wenn nicht vorhanden, auf die terminierende Null
 LPTSTR m;

 s=GetFileNamePtr(s);
 while (*s==T('.')) s++;	// Führende Punkte (z.B. ".login") ignorieren
 for(m=NULL;;s=CharNext(s)) switch(*s) {
  case T('.'): m=(LPTSTR)s; break;	// Kandidat merken
  case 0: if (!m) m=(LPTSTR)s; return m;
 }
}

void InitStruct(LPVOID p, DWORD len) {
// Füllt eine Windows-typische Struktur mit Nullen und das erste
// DWORD mit der Struct-Größe
 memset(p,0,len);
 *(LPDWORD)p=len;
}
Detected encoding: ANSI (CP1252)4
Wrong umlauts? - Assume file is ANSI (CP1252) encoded