|
|
| version 1.1, 2003/10/16 17:58:43 | version 1.3, 2003/10/22 14:13:25 |
|---|---|
| Line 12 EXTROMH extromio_open(const char *filena | Line 12 EXTROMH extromio_open(const char *filena |
| EXTROMH ret; | EXTROMH ret; |
| HRSRC hrsrc; | HRSRC hrsrc; |
| HGLOBAL hg; | |
| ret = (EXTROMH)_MALLOC(sizeof(_EXTROMH), filename); | ret = (EXTROMH)_MALLOC(sizeof(_EXTROMH), filename); |
| if (ret == NULL) { | if (ret == NULL) { |
| Line 27 EXTROMH extromio_open(const char *filena | Line 28 EXTROMH extromio_open(const char *filena |
| else if (type == EXTROMIO_RES) { | else if (type == EXTROMIO_RES) { |
| hrsrc = FindResource(hInst, filename, str_extrom); | hrsrc = FindResource(hInst, filename, str_extrom); |
| if (hrsrc) { | if (hrsrc) { |
| ret->fh = (void *)LoadResource(hInst, hrsrc); | hg = LoadResource(hInst, hrsrc); |
| ret->fh = (void *)LockResource(hg); | |
| ret->pos = 0; | ret->pos = 0; |
| ret->size = SizeofResource(hInst, hrsrc); | ret->size = SizeofResource(hInst, hrsrc); |
| return(ret); | return(ret); |
| Line 41 erope_err1: | Line 43 erope_err1: |
| UINT extromio_read(EXTROMH erh, void *buf, UINT size) { | UINT extromio_read(EXTROMH erh, void *buf, UINT size) { |
| const char *p; | |
| if (erh) { | if (erh) { |
| if (erh->type == EXTROMIO_FILE) { | if (erh->type == EXTROMIO_FILE) { |
| return(file_read((FILEH)erh->fh, buf, size)); | return(file_read((FILEH)erh->fh, buf, size)); |
| Line 50 const char *p; | Line 50 const char *p; |
| else if (erh->type == EXTROMIO_RES) { | else if (erh->type == EXTROMIO_RES) { |
| size = min(size, (UINT)(erh->size - erh->pos)); | size = min(size, (UINT)(erh->size - erh->pos)); |
| if (size) { | if (size) { |
| p = (char *)LockResource((HGLOBAL)erh->fh); | CopyMemory(buf, ((BYTE *)erh->fh) + erh->pos, size); |
| CopyMemory(buf, p + erh->pos, size); | |
| erh->pos += size; | erh->pos += size; |
| UnlockResource((HGLOBAL)erh->fh); | |
| } | } |
| return(size); | return(size); |
| } | } |
| Line 96 void extromio_close(EXTROMH erh) { | Line 94 void extromio_close(EXTROMH erh) { |
| if (erh->type == EXTROMIO_FILE) { | if (erh->type == EXTROMIO_FILE) { |
| file_close((FILEH)erh->fh); | file_close((FILEH)erh->fh); |
| } | } |
| else if (erh->type == EXTROMIO_RES) { | |
| FreeResource((HGLOBAL)erh->fh); | |
| } | |
| _MFREE(erh); | _MFREE(erh); |
| } | } |
| } | } |