2 /* =========================== Module _AH =========================== */
8 #include "pymactoolbox.h"
10 /* Macro to test whether a weak-loaded CFM function exists */
11 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
12 PyErr_SetString(PyExc_NotImplementedError, \
13 "Not available in this shared library/OS version"); \
18 #include <Carbon/Carbon.h>
21 static PyObject
*Ah_Error
;
23 static PyObject
*Ah_AHSearch(PyObject
*_self
, PyObject
*_args
)
25 PyObject
*_res
= NULL
;
29 if (!PyArg_ParseTuple(_args
, "O&O&",
30 CFStringRefObj_Convert
, &bookname
,
31 CFStringRefObj_Convert
, &query
))
33 _err
= AHSearch(bookname
,
35 if (_err
!= noErr
) return PyMac_Error(_err
);
41 static PyObject
*Ah_AHGotoMainTOC(PyObject
*_self
, PyObject
*_args
)
43 PyObject
*_res
= NULL
;
46 if (!PyArg_ParseTuple(_args
, "h",
49 _err
= AHGotoMainTOC(toctype
);
50 if (_err
!= noErr
) return PyMac_Error(_err
);
56 static PyObject
*Ah_AHGotoPage(PyObject
*_self
, PyObject
*_args
)
58 PyObject
*_res
= NULL
;
63 if (!PyArg_ParseTuple(_args
, "O&O&O&",
64 CFStringRefObj_Convert
, &bookname
,
65 CFStringRefObj_Convert
, &path
,
66 CFStringRefObj_Convert
, &anchor
))
68 _err
= AHGotoPage(bookname
,
71 if (_err
!= noErr
) return PyMac_Error(_err
);
77 static PyObject
*Ah_AHLookupAnchor(PyObject
*_self
, PyObject
*_args
)
79 PyObject
*_res
= NULL
;
83 if (!PyArg_ParseTuple(_args
, "O&O&",
84 CFStringRefObj_Convert
, &bookname
,
85 CFStringRefObj_Convert
, &anchor
))
87 _err
= AHLookupAnchor(bookname
,
89 if (_err
!= noErr
) return PyMac_Error(_err
);
95 static PyObject
*Ah_AHRegisterHelpBook(PyObject
*_self
, PyObject
*_args
)
97 PyObject
*_res
= NULL
;
100 if (!PyArg_ParseTuple(_args
, "O&",
101 PyMac_GetFSRef
, &appBundleRef
))
103 _err
= AHRegisterHelpBook(&appBundleRef
);
104 if (_err
!= noErr
) return PyMac_Error(_err
);
110 static PyMethodDef Ah_methods
[] = {
111 {"AHSearch", (PyCFunction
)Ah_AHSearch
, 1,
112 PyDoc_STR("(CFStringRef bookname, CFStringRef query) -> None")},
113 {"AHGotoMainTOC", (PyCFunction
)Ah_AHGotoMainTOC
, 1,
114 PyDoc_STR("(AHTOCType toctype) -> None")},
115 {"AHGotoPage", (PyCFunction
)Ah_AHGotoPage
, 1,
116 PyDoc_STR("(CFStringRef bookname, CFStringRef path, CFStringRef anchor) -> None")},
117 {"AHLookupAnchor", (PyCFunction
)Ah_AHLookupAnchor
, 1,
118 PyDoc_STR("(CFStringRef bookname, CFStringRef anchor) -> None")},
119 {"AHRegisterHelpBook", (PyCFunction
)Ah_AHRegisterHelpBook
, 1,
120 PyDoc_STR("(FSRef appBundleRef) -> None")},
135 m
= Py_InitModule("_AH", Ah_methods
);
136 d
= PyModule_GetDict(m
);
137 Ah_Error
= PyMac_GetOSErrException();
138 if (Ah_Error
== NULL
||
139 PyDict_SetItemString(d
, "Error", Ah_Error
) != 0)
143 /* ========================= End module _AH ========================= */