]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - setup/win32/msi/msiquery.c
the historic move: getting rid of all visual studio project stuff, now that the mingw...
[xonotic/netradiant.git] / setup / win32 / msi / msiquery.c
diff --git a/setup/win32/msi/msiquery.c b/setup/win32/msi/msiquery.c
deleted file mode 100644 (file)
index ca6f4fd..0000000
+++ /dev/null
@@ -1,474 +0,0 @@
-/*\r
-Copyright (C) 2001-2006 William Joseph.\r
-For a list of contributors, see the accompanying CONTRIBUTORS file.\r
-\r
-This file is part of GtkRadiant.\r
-\r
-GtkRadiant is free software; you can redistribute it and/or modify\r
-it under the terms of the GNU General Public License as published by\r
-the Free Software Foundation; either version 2 of the License, or\r
-(at your option) any later version.\r
-\r
-GtkRadiant is distributed in the hope that it will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-GNU General Public License for more details.\r
-\r
-You should have received a copy of the GNU General Public License\r
-along with GtkRadiant; if not, write to the Free Software\r
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
-*/\r
-\r
-#include "Python.h"
-#include "structmember.h"
-
-#include <windows.h>
-#include <msi.h>
-#include <msiquery.h>
-\r
-typedef struct {\r
-  PyObject_HEAD\r
-  MSIHANDLE handle;\r
-} MsiRecord;\r
-\r
-static void\r
-MsiRecord_dealloc(MsiRecord* self)\r
-{\r
-  if(self->handle != 0)\r
-  {\r
-    unsigned int result = MsiCloseHandle(self->handle);\r
-  }\r
-  self->ob_type->tp_free((PyObject*)self);\r
-}\r
-\r
-static PyObject *\r
-MsiRecord_new(PyTypeObject *type, PyObject *args)\r
-{\r
-  MsiRecord *self;\r
-\r
-  self = (MsiRecord *)type->tp_alloc(type, 0);\r
-  if (self != NULL)\r
-  {\r
-    self->handle = 0;\r
-  }\r
-\r
-  return (PyObject *)self;\r
-}\r
-\r
-static int\r
-MsiRecord_init(MsiRecord *self, PyObject *args)\r
-{\r
-  return 0;\r
-}\r
-\r
-static PyMemberDef MsiRecord_members[] = {\r
-    {NULL}  /* Sentinel */\r
-};\r
-\r
-static PyObject *\r
-MsiRecord_getstring(MsiRecord* self, PyObject *args)\r
-{\r
-  char string[16384];\r
-  DWORD size = 16384;\r
-  int index;\r
-  unsigned int result = 1;\r
-  if (!PyArg_ParseTuple(args, "i", &index))\r
-  {\r
-    return NULL;\r
-  }\r
-  if(self->handle != 0)\r
-  {\r
-    if(MsiRecordIsNull(self->handle, index))\r
-    {\r
-      puts("null record index");\r
-    }\r
-    result = MsiRecordGetString(self->handle, index, string, &size);\r
-    printf("string: %s, index: %i\n", string, index);\r
-    if(result != 0)\r
-    {\r
-      strcpy(string, "bleh");\r
-    }\r
-  }\r
-  return PyString_FromString(string);\r
-}\r
-\r
-static PyObject *\r
-MsiRecord_setstring(MsiRecord* self, PyObject *args)\r
-{\r
-  char* string;\r
-  int index;\r
-  unsigned int result = 1;\r
-  if (!PyArg_ParseTuple(args, "is", &index, &string))\r
-  {\r
-    return NULL;\r
-  }\r
-  if(self->handle != 0)\r
-  {\r
-    result = MsiRecordSetString(self->handle, index, string);\r
-  }\r
-  return Py_BuildValue("i", result);\r
-}\r
-\r
-static PyMethodDef MsiRecord_methods[] = {\r
-    {"getstring", (PyCFunction)MsiRecord_getstring, METH_VARARGS,\r
-     "MsiRecordGetString"\r
-    },\r
-    {"setstring", (PyCFunction)MsiRecord_setstring, METH_VARARGS,\r
-     "MsiRecordSetString"\r
-    },\r
-    {NULL}  /* Sentinel */\r
-};\r
-\r
-static PyTypeObject MsiRecordType = {\r
-    PyObject_HEAD_INIT(NULL)\r
-    0,                         /*ob_size*/\r
-    "msiquery.MsiRecord",             /*tp_name*/\r
-    sizeof(MsiRecord),             /*tp_basicsize*/\r
-    0,                         /*tp_itemsize*/\r
-    (destructor)MsiRecord_dealloc, /*tp_dealloc*/\r
-    0,                         /*tp_print*/\r
-    0,                         /*tp_getattr*/\r
-    0,                         /*tp_setattr*/\r
-    0,                         /*tp_compare*/\r
-    0,                         /*tp_repr*/\r
-    0,                         /*tp_as_number*/\r
-    0,                         /*tp_as_sequence*/\r
-    0,                         /*tp_as_mapping*/\r
-    0,                         /*tp_hash */\r
-    0,                         /*tp_call*/\r
-    0,                         /*tp_str*/\r
-    0,                         /*tp_getattro*/\r
-    0,                         /*tp_setattro*/\r
-    0,                         /*tp_as_buffer*/\r
-    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/\r
-    "MsiRecord objects",           /* tp_doc */\r
-    0,                        /* tp_traverse */\r
-    0,                        /* tp_clear */\r
-    0,                        /* tp_richcompare */\r
-    0,                        /* tp_weaklistoffset */\r
-    0,                        /* tp_iter */\r
-    0,                        /* tp_iternext */\r
-    MsiRecord_methods,             /* tp_methods */\r
-    MsiRecord_members,             /* tp_members */\r
-    0,                         /* tp_getset */\r
-    0,                         /* tp_base */\r
-    0,                         /* tp_dict */\r
-    0,                         /* tp_descr_get */\r
-    0,                         /* tp_descr_set */\r
-    0,                         /* tp_dictoffset */\r
-    (initproc)MsiRecord_init,      /* tp_init */\r
-    0,                         /* tp_alloc */\r
-    (newfunc)MsiRecord_new,                 /* tp_new */\r
-};\r
-\r
-PyObject*\r
-MsiRecord_FromHandle(MSIHANDLE handle)\r
-{\r
-  MsiRecord *record = (MsiRecord *)MsiRecordType.tp_new(&MsiRecordType, NULL, NULL);\r
-  record->handle = handle;\r
-  return (PyObject*)record;\r
-}\r
-\r
-\r
-typedef struct {\r
-  PyObject_HEAD\r
-  MSIHANDLE handle;\r
-} MsiView;\r
-\r
-static void\r
-MsiView_dealloc(MsiView* self)\r
-{\r
-  if(self->handle != 0)\r
-  {\r
-    unsigned int result;\r
-    result = MsiViewClose(self->handle);\r
-    result = MsiCloseHandle(self->handle);\r
-  }\r
-  self->ob_type->tp_free((PyObject*)self);\r
-}\r
-\r
-static PyObject *\r
-MsiView_new(PyTypeObject *type, PyObject *args)\r
-{\r
-  MsiView *self;\r
-\r
-  self = (MsiView *)type->tp_alloc(type, 0);\r
-  if (self != NULL)\r
-  {\r
-    self->handle = 0;\r
-  }\r
-\r
-  return (PyObject *)self;\r
-}\r
-\r
-static int\r
-MsiView_init(MsiView *self)\r
-{\r
-  return 0;\r
-}\r
-\r
-static PyMemberDef MsiView_members[] = {\r
-    {NULL}  /* Sentinel */\r
-};\r
-\r
-static PyObject *\r
-MsiView_fetch(MsiView* self)\r
-{\r
-  unsigned int result = 1;\r
-  MSIHANDLE record;\r
-  result = MsiViewFetch(self->handle, &record);\r
-  if(result == 0)\r
-  {\r
-    return MsiRecord_FromHandle(record);\r
-  }\r
-  else\r
-  {\r
-    Py_INCREF(Py_None);\r
-    return Py_None;\r
-  }\r
-}\r
-\r
-static PyObject *\r
-MsiView_update(MsiView* self, PyObject *args)\r
-{\r
-  unsigned int result = 1;\r
-  MsiRecord *record;\r
-  if(!PyArg_ParseTuple(args, "O!", &MsiRecordType, &record))\r
-  {\r
-    return NULL;\r
-  }\r
-  result = MsiViewModify(self->handle, MSIMODIFY_UPDATE, record->handle);\r
-  return Py_BuildValue("i", result);\r
-}\r
-\r
-static PyMethodDef MsiView_methods[] = {\r
-    {"fetch", (PyCFunction)MsiView_fetch, METH_NOARGS,\r
-     "MsiViewFetch"\r
-    },\r
-    {"update", (PyCFunction)MsiView_update, METH_VARARGS,\r
-     "MsiViewModify(UPDATE)"\r
-    },\r
-    {NULL}  /* Sentinel */\r
-};\r
-\r
-static PyTypeObject MsiViewType = {\r
-    PyObject_HEAD_INIT(NULL)\r
-    0,                         /*ob_size*/\r
-    "msiquery.MsiView",             /*tp_name*/\r
-    sizeof(MsiView),             /*tp_basicsize*/\r
-    0,                         /*tp_itemsize*/\r
-    (destructor)MsiView_dealloc, /*tp_dealloc*/\r
-    0,                         /*tp_print*/\r
-    0,                         /*tp_getattr*/\r
-    0,                         /*tp_setattr*/\r
-    0,                         /*tp_compare*/\r
-    0,                         /*tp_repr*/\r
-    0,                         /*tp_as_number*/\r
-    0,                         /*tp_as_sequence*/\r
-    0,                         /*tp_as_mapping*/\r
-    0,                         /*tp_hash */\r
-    0,                         /*tp_call*/\r
-    0,                         /*tp_str*/\r
-    0,                         /*tp_getattro*/\r
-    0,                         /*tp_setattro*/\r
-    0,                         /*tp_as_buffer*/\r
-    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/\r
-    "MsiView objects",           /* tp_doc */\r
-    0,                        /* tp_traverse */\r
-    0,                        /* tp_clear */\r
-    0,                        /* tp_richcompare */\r
-    0,                        /* tp_weaklistoffset */\r
-    0,                        /* tp_iter */\r
-    0,                        /* tp_iternext */\r
-    MsiView_methods,             /* tp_methods */\r
-    MsiView_members,             /* tp_members */\r
-    0,                         /* tp_getset */\r
-    0,                         /* tp_base */\r
-    0,                         /* tp_dict */\r
-    0,                         /* tp_descr_get */\r
-    0,                         /* tp_descr_set */\r
-    0,                         /* tp_dictoffset */\r
-    (initproc)MsiView_init,      /* tp_init */\r
-    0,                         /* tp_alloc */\r
-    (newfunc)MsiView_new,                 /* tp_new */\r
-};\r
-\r
-PyObject*\r
-MsiView_FromHandle(MSIHANDLE handle)\r
-{\r
-  MsiView *view = (MsiView *)MsiViewType.tp_new(&MsiViewType, NULL, NULL);\r
-  view->handle = handle;\r
-  MsiViewExecute(handle, 0);\r
-  return (PyObject*)view;\r
-}\r
-\r
-\r
-typedef struct {\r
-  PyObject_HEAD\r
-  MSIHANDLE handle;\r
-} MsiDB;\r
-\r
-static void\r
-MsiDB_dealloc(MsiDB* self)\r
-{\r
-  if(self->handle != 0)\r
-  {\r
-    unsigned int result = MsiCloseHandle(self->handle);\r
-  }\r
-  self->ob_type->tp_free((PyObject*)self);\r
-}\r
-\r
-static PyObject *\r
-MsiDB_new(PyTypeObject *type, PyObject *args)\r
-{\r
-  MsiDB *self;\r
-\r
-  self = (MsiDB *)type->tp_alloc(type, 0);\r
-  if (self != NULL)\r
-  {\r
-    self->handle = 0;\r
-  }\r
-\r
-  return (PyObject *)self;\r
-}\r
-\r
-static int\r
-MsiDB_init(MsiDB *self, PyObject *args)\r
-{\r
-  char* filename;\r
-  if(!PyArg_ParseTuple(args, "s", &filename))\r
-  {\r
-    return -1;\r
-  }\r
-\r
-  MsiOpenDatabase(filename, MSIDBOPEN_TRANSACT, &self->handle);\r
-\r
-  return 0;\r
-}\r
-\r
-static PyMemberDef MsiDB_members[] = {\r
-    {NULL}  /* Sentinel */\r
-};\r
-\r
-static PyObject *\r
-MsiDB_openview(MsiDB* self, PyObject *args)\r
-{\r
-  char* query;\r
-  unsigned int result = 1;\r
-  if (!PyArg_ParseTuple(args, "s", &query))\r
-  {\r
-    return NULL;\r
-  }\r
-  if(self->handle != 0)\r
-  {\r
-    MSIHANDLE view;\r
-    result = MsiDatabaseOpenView(self->handle, query, &view);\r
-    if(result == ERROR_SUCCESS)\r
-    {\r
-      return MsiView_FromHandle(view);\r
-    }\r
-  }\r
-  Py_INCREF(Py_None);\r
-  return Py_None;\r
-}\r
-\r
-static PyObject *\r
-MsiDB_commit(MsiDB* self)\r
-{\r
-  unsigned int result = 1;\r
-  if(self->handle != 0)\r
-  {\r
-    result = MsiDatabaseCommit(self->handle);\r
-    if(result == ERROR_INVALID_HANDLE)\r
-    {\r
-      printf("invalid??\n");\r
-    }\r
-  }\r
-  return Py_BuildValue("i", result);\r
-}\r
-\r
-static PyMethodDef MsiDB_methods[] = {\r
-    {"openview", (PyCFunction)MsiDB_openview, METH_VARARGS,\r
-     "MsiViewExecute SQL query"\r
-    },\r
-    {"commit", (PyCFunction)MsiDB_commit, METH_NOARGS,\r
-     "MsiDatabaseCommit"\r
-    },\r
-    {NULL}  /* Sentinel */\r
-};\r
-\r
-static PyTypeObject MsiDBType = {\r
-    PyObject_HEAD_INIT(NULL)\r
-    0,                         /*ob_size*/\r
-    "msiquery.MsiDB",             /*tp_name*/\r
-    sizeof(MsiDB),             /*tp_basicsize*/\r
-    0,                         /*tp_itemsize*/\r
-    (destructor)MsiDB_dealloc, /*tp_dealloc*/\r
-    0,                         /*tp_print*/\r
-    0,                         /*tp_getattr*/\r
-    0,                         /*tp_setattr*/\r
-    0,                         /*tp_compare*/\r
-    0,                         /*tp_repr*/\r
-    0,                         /*tp_as_number*/\r
-    0,                         /*tp_as_sequence*/\r
-    0,                         /*tp_as_mapping*/\r
-    0,                         /*tp_hash */\r
-    0,                         /*tp_call*/\r
-    0,                         /*tp_str*/\r
-    0,                         /*tp_getattro*/\r
-    0,                         /*tp_setattro*/\r
-    0,                         /*tp_as_buffer*/\r
-    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/\r
-    "MsiDB objects",           /* tp_doc */\r
-    0,                        /* tp_traverse */\r
-    0,                        /* tp_clear */\r
-    0,                        /* tp_richcompare */\r
-    0,                        /* tp_weaklistoffset */\r
-    0,                        /* tp_iter */\r
-    0,                        /* tp_iternext */\r
-    MsiDB_methods,             /* tp_methods */\r
-    MsiDB_members,             /* tp_members */\r
-    0,                         /* tp_getset */\r
-    0,                         /* tp_base */\r
-    0,                         /* tp_dict */\r
-    0,                         /* tp_descr_get */\r
-    0,                         /* tp_descr_set */\r
-    0,                         /* tp_dictoffset */\r
-    (initproc)MsiDB_init,      /* tp_init */\r
-    0,                         /* tp_alloc */\r
-    (newfunc)MsiDB_new,                 /* tp_new */\r
-};\r
-\r
-static PyMethodDef msiquery_methods[] = {\r
-    {NULL}  /* Sentinel */\r
-};\r
-\r
-PyMODINIT_FUNC\r
-initmsiquery(void) \r
-{\r
-    PyObject* m;\r
-\r
-    if (PyType_Ready(&MsiRecordType) < 0)\r
-        return;\r
-\r
-    if (PyType_Ready(&MsiViewType) < 0)\r
-        return;\r
-\r
-    if (PyType_Ready(&MsiDBType) < 0)\r
-        return;\r
-\r
-    m = Py_InitModule3("msiquery", msiquery_methods, "Msi API module.");\r
-\r
-    if (m == NULL)\r
-      return;\r
-\r
-    Py_INCREF(&MsiRecordType);\r
-    PyModule_AddObject(m, "MsiRecord", (PyObject *)&MsiRecordType);\r
-\r
-    Py_INCREF(&MsiViewType);\r
-    PyModule_AddObject(m, "MsiView", (PyObject *)&MsiViewType);\r
-\r
-    Py_INCREF(&MsiDBType);\r
-    PyModule_AddObject(m, "MsiDB", (PyObject *)&MsiDBType);\r
-}\r
-\r