BOOL CEpgDataCap3Util::UnLoadDll(void) { if( module != NULL ){ if( id != 0 ){ pfnUnInitializeEP3(id); } ::FreeLibrary( module ); id = 0; } module = NULL; pfnInitializeEP3 = NULL; pfnUnInitializeEP3 = NULL; pfnAddTSPacketEP3 = NULL; pfnGetTSIDEP3 = NULL; pfnGetEpgInfoListEP3 = NULL; pfnClearSectionStatusEP3 = NULL; pfnGetSectionStatusEP3 = NULL; pfnGetServiceListActualEP3 = NULL; pfnGetServiceListEpgDBEP3 = NULL; pfnGetEpgInfoEP3 = NULL; pfnSearchEpgInfoEP3 = NULL; pfnGetTimeDelayEP3 = NULL; return TRUE; }
//DLLの開放 //戻り値: // エラーコード DWORD CEpgDataCap3Util::UnInitialize( ) { if( module == NULL || id == 0 ){ return ERR_NOT_INIT; } DWORD err = pfnUnInitializeEP3(id); UnLoadDll(); return err; }
//DLLの開放 //戻り値: // エラーコード DWORD CEpgDataCap3Util::UnInitialize( ) { if( module == NULL || id == 0 ){ return ERR_NOT_INIT; } DWORD err = pfnUnInitializeEP3(id); id = 0; // ← これがないと下の UnLoadDll で再度 UnInitializeEP が呼ばれる UnLoadDll(); return err; }