| 141 | } |
| 142 | |
| 143 | int sethook() { |
| 144 | // MessageBoxA(NULL, "sethook", "", 0); |
| 145 | // printf("sethook\n"); |
| 146 | if (MH_Initialize() != MH_OK) { |
| 147 | printf("MH_Initialize false\n"); |
| 148 | return -1; |
| 149 | } |
| 150 | if (MH_CreateHook(&CoCreateInstance, &myCoCreateInstance, (void **)&oCoCreateInstance) != MH_OK) { |
| 151 | printf("MH_CreateHook false \n"); |
| 152 | return -2; |
| 153 | } |
| 154 | if (MH_CreateHook(&CLSIDFromProgID, &myCLSIDFromProgID, (void **)&oCLSIDFromProgID) != MH_OK) { |
| 155 | printf("MH_CreateHook false \n"); |
| 156 | return -3; |
| 157 | } |
| 158 | if (MH_CreateHook(&CoGetClassObject, &myCoGetClassObject, (void **)&oCoGetClassObject) != MH_OK) { |
| 159 | printf("MH_CreateHook false \n"); |
| 160 | return -4; |
| 161 | } |
| 162 | // LoadRegTypeLib |
| 163 | if (MH_CreateHook(&LoadRegTypeLib, &mLoadRegTypeLib, (void **)&oLoadRegTypeLib) != MH_OK) { |
| 164 | printf("MH_CreateHook false \n"); |
| 165 | return -5; |
| 166 | } |
| 167 | if (MH_EnableHook(NULL) != MH_OK) { |
| 168 | // printf("MH_EnableHook false\n"); |
| 169 | return -6; |
| 170 | } |
| 171 | return 1; |
| 172 | } |
| 173 | |
| 174 | // 这是导出变量的一个示例 |
| 175 | // EASYCOM_API int nEasyCom = 0; |