00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "ALameDLL.h"
00019
00021
00023
00024 LameDLL(NULL),
00025 beInitStream(NULL),
00026 beCloseStream(NULL),
00027 beEncodeChunk(NULL),
00028 beDeinitStream(NULL),
00029 beWriteVBRHeader(NULL),
00030 beVersion(NULL)
00031 {
00032 }
00033
00034 ALameDLL::~ALameDLL()
00035 {
00036 if (LameDLL != NULL)
00037 FreeLibrary(LameDLL);
00038 }
00039
00040 bool ALameDLL::Load(const char * DllLocation)
00041 {
00042 bool result = false;
00043
00044 if (LameDLL == NULL)
00045 {
00046 LameDLL = LoadLibrary(DllLocation);
00047 }
00048
00049 if (LameDLL != NULL)
00050 {
00051 beInitStream = (BEINITSTREAM) GetProcAddress(LameDLL, TEXT_BEINITSTREAM);
00052 beCloseStream = (BECLOSESTREAM) GetProcAddress(LameDLL, TEXT_BECLOSESTREAM);
00053 beEncodeChunk = (BEENCODECHUNK) GetProcAddress(LameDLL, TEXT_BEENCODECHUNK);
00054 beDeinitStream = (BEDEINITSTREAM) GetProcAddress(LameDLL, TEXT_BEDEINITSTREAM);
00055 beWriteVBRHeader = (BEWRITEVBRHEADER) GetProcAddress(LameDLL, TEXT_BEWRITEVBRHEADER);
00056 beVersion = (BEVERSION) GetProcAddress(LameDLL, TEXT_BEVERSION);
00057
00058 result = IsLoaded();
00059 }
00060 else
00061 {
00062 beInitStream = NULL;
00063 beCloseStream = NULL;
00064 beEncodeChunk = NULL;
00065 beDeinitStream = NULL;
00066 beWriteVBRHeader = NULL;
00067 beVersion = NULL;
00068 }
00069
00070 return result;
00071 }
00072
00073 void ALameDLL::Free()
00074 {
00075 if (LameDLL != NULL)
00076 {
00077 FreeLibrary(LameDLL);
00078 }
00079
00080 LameDLL = NULL;
00081
00082
00083 beInitStream = NULL;
00084 beCloseStream = NULL;
00085 beEncodeChunk = NULL;
00086 beDeinitStream = NULL;
00087 beWriteVBRHeader = NULL;
00088 beVersion = NULL;
00089 }