home *** CD-ROM | disk | FTP | other *** search
- /*-------------------------------------------
- ü@UTL.C
- ü@ü@é╗é╠æ╝é╠è╓Éö
- ü@ü@Copyright (C) KAZUBON 1997
- ---------------------------------------------*/
-
- #include "tcdll.h"
-
- /*------------------------------------------------
- ü@ÄwÆΦé│éΩé╜û╝æOé╠âtâHâôâgé¬éáéΘé⌐Æ▓é╫éΘ
- --------------------------------------------------*/
- BOOL CALLBACK EnumFontFamExProc(ENUMLOGFONTEX* pelf,
- NEWTEXTMETRICEX* lpntm, int FontType, LPARAM fontname)
- {
- if(strcmp((LPSTR)fontname, pelf->elfLogFont.lfFaceName) == 0)
- return FALSE;
- return TRUE;
- }
-
- /*------------------------------------------------
- ü@APIüFâ|âCâôâgâTâCâYé⌐éτâtâHâôâgé≡ì∞ɼ
- --------------------------------------------------*/
- HFONT WINAPI CreateMyFont(char* fontname, int fontsize, LONG weight, LONG italic)
- {
- LOGFONT lf;
- POINT pt;
- HDC hdc;
-
- memset(&lf, 0, sizeof(LOGFONT));
-
- hdc = GetDC(NULL);
-
- // ò╢ÄÜâZâbâgé≡îêé▀éΘ
- lf.lfCharSet = SHIFTJIS_CHARSET;
- if(EnumFontFamiliesEx(hdc, &lf, EnumFontFamExProc, (LPARAM)(LPSTR)fontname, 0))
- {
- lf.lfCharSet = OEM_CHARSET;
- if(EnumFontFamiliesEx(hdc, &lf, EnumFontFamExProc, (LPARAM)(LPSTR)fontname, 0))
- {
- lf.lfCharSet = ANSI_CHARSET;
- EnumFontFamiliesEx(hdc, &lf, EnumFontFamExProc, (LPARAM)(LPSTR)fontname, 0);
- }
- }
-
- pt.x = 0;
- pt.y = GetDeviceCaps(hdc, LOGPIXELSY) * fontsize / 72;
- DPtoLP(hdc, &pt, 1);
- lf.lfHeight = -pt.y;
-
- ReleaseDC(NULL, hdc);
-
- lf.lfWidth = lf.lfEscapement = lf.lfOrientation = 0;
- lf.lfWeight = weight;
- lf.lfItalic = (BYTE)italic;
- lf.lfUnderline = lf.lfStrikeOut = 0;
- //lf.lfCharSet = ;
- lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
- lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
- lf.lfQuality = DEFAULT_QUALITY;
- lf.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
- strcpy(lf.lfFaceName, fontname);
-
- return CreateFontIndirect(&lf);
- }
-
- #define iskan1(c) ((0x81<=(c) && (c)<=0x9f) || (0xe0<=(c) && (c)<=0xfc))
-
- /*------------------------------------------------
- ü@âtâ@âCâïé╠ègÆúÄqé╠öΣèr
- --------------------------------------------------*/
- int ext_cmp(char *fname, char *ext)
- {
- char* p, *sp;
-
- sp = NULL; p = fname;
- while(*p)
- {
- if(iskan1((unsigned char)*p)) p += 2;
- else
- {
- if(*p == '.') sp = p;
- else if(*p == '\\' || *p == '/') sp = NULL;
- p++;
- }
- }
-
- if(sp == NULL) sp = p;
- if(*sp == '.') sp++;
-
- while(1)
- {
- if(*sp == 0 && *ext == 0) return 0;
- if(toupper(*sp) != toupper(*ext))
- return (toupper(*sp) - toupper(*ext));
- sp++; ext++;
- }
- return 0;
- }
-
- /*------------------------------------------------
- âJâôâ}é┼ïµÉ╪éτéΩé╜ò╢ÄÜù±é≡ĵéΦÅoé╖
- --------------------------------------------------*/
- void parse(char *dst, char *src, int n)
- {
- char *dp;
- int i;
-
- for(i = 0; i < n; i++)
- {
- while(*src && *src != ',') src++;
- if(*src == ',') src++;
- }
- if(*src == 0)
- {
- *dst = 0; return;
- }
-
- while(*src == ' ') src++;
-
- dp = dst;
- while(*src && *src != ',') *dst++ = *src++;
- *dst = 0;
-
- while(dst != dp)
- {
- dst--;
- if(*dst == ' ') *dst = 0;
- else break;
- }
- }
-
- char mykey[] = "Software\\Kazubon\\TClock";
-
- /*------------------------------------------------
- ü@Ä⌐ò¬é╠âîâWâXâgâèé⌐éτò╢ÄÜù±é≡ô╛éΘ
- --------------------------------------------------*/
- BOOL GetMyRegStr(char* entry, char* val)
- {
- HKEY hkey;
- DWORD regtype;
- DWORD size;
- BOOL r;
-
- r = FALSE;
- if(RegOpenKey(HKEY_CURRENT_USER, mykey, &hkey) == 0)
- {
- size = 1024;
- if(RegQueryValueEx(hkey, entry, 0, ®type,
- (LPBYTE)val, &size) == 0)
- {
- if(size == 0) *val = 0;
- r = TRUE;
- }
- RegCloseKey(hkey);
- }
- return r;
- }
-
- /*------------------------------------------------
- ü@Ä⌐ò¬é╠âîâWâXâgâèé⌐éτLONGÆlé≡ô╛éΘ
- --------------------------------------------------*/
- BOOL GetMyRegLong(char* entry, LONG* val)
- {
- HKEY hkey;
- DWORD regtype;
- DWORD size;
- BOOL r;
-
- r = FALSE;
- if(RegOpenKey(HKEY_CURRENT_USER, mykey, &hkey) == 0)
- {
- size = 4;
- if(RegQueryValueEx(hkey, entry, 0, ®type,
- (LPBYTE)val, &size) == 0)
- {
- if(size == 4) r = TRUE;
- }
- RegCloseKey(hkey);
- }
- return r;
- }
-
- /*------------------------------------------------
- ü@âîâWâXâgâèé⌐éτò╢ÄÜù±é≡ô╛éΘ
- --------------------------------------------------*/
- BOOL GetRegStr(HKEY rootkey, char*subkey, char* entry, char* val)
- {
- HKEY hkey;
- DWORD regtype;
- DWORD size;
- BOOL r;
-
- r = FALSE;
- if(RegOpenKey(rootkey, subkey, &hkey) == 0)
- {
- size = 1024;
- if(RegQueryValueEx(hkey, entry, 0, ®type,
- (LPBYTE)val, &size) == 0)
- {
- if(size == 0) *val = 0;
- r = TRUE;
- }
- RegCloseKey(hkey);
- }
- return r;
- }
-
- /*------------------------------------------------
- ü@âfâoâbâOùp
- --------------------------------------------------*/
- void WriteDebug(LPSTR s)
- {
- HFILE hf;
- char fname[] = "\\\\Kazubon-nt\\dshare\\MY PROGRAM\\TCLOCK\\DEBUG.TXT";
-
- hf = _lopen(fname, OF_WRITE);
- if(hf == HFILE_ERROR) hf = _lcreat(fname, 0);
- if(hf == HFILE_ERROR) return;
- _llseek(hf, 0, 2);
- _lwrite(hf, s, lstrlen(s));
- _lwrite(hf, "\x0d\x0a", 2);
- _lclose(hf);
- }
-