]> git.cworth.org Git - apitrace/blobdiff - wrappers/dlltrace.py
specs: Allow an API to spread across multiple modules.
[apitrace] / wrappers / dlltrace.py
index 3912dd07c5ac89db55ff5f3c6cdc786700b2c625..cea7dc7464c4717efe44828a917f65a6a4c2d3d9 100644 (file)
@@ -28,6 +28,7 @@
 
 from trace import Tracer
 from dispatch import Dispatcher
+from specs.stdapi import API
 
 
 class DllTracer(Tracer):
@@ -37,10 +38,10 @@ class DllTracer(Tracer):
     
     def header(self, api):
         print '''
-static HINSTANCE g_hDll = NULL;
+static HMODULE g_hDll = NULL;
 
 static PROC
-__getPublicProcAddress(LPCSTR lpProcName)
+_getPublicProcAddress(LPCSTR lpProcName)
 {
     if (!g_hDll) {
         char szDll[MAX_PATH] = {0};
@@ -62,8 +63,13 @@ __getPublicProcAddress(LPCSTR lpProcName)
 
 ''' % self.dllname
 
-        dispatcher = Dispatcher()
-        dispatcher.dispatch_api(api)
+        for module in api.modules:
+            dispatcher = Dispatcher()
+            dispatcher.dispatchModule(module)
 
         Tracer.header(self, api)
 
+    def traceModule(self, module):
+        api = API()
+        api.addModule(module)
+        self.traceApi(api)