// 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;
}
Vorgefundene Kodierung: UTF-8 | 0
|