mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
Set svn:eol-style property to native
svn path=/trunk/; revision=16373
This commit is contained in:
+35
-35
@@ -1,35 +1,35 @@
|
||||
/*
|
||||
* Czech resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
* Copyright 2004 David Kredba
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Kopíruji soubory..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Storno", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Zdroj:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Cíl:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* Czech resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
* Copyright 2004 David Kredba
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Kopíruji soubory..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Storno", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Zdroj:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Cíl:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+34
-34
@@ -1,34 +1,34 @@
|
||||
/*
|
||||
* German resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2004 Henning Gerhardt
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Dateien kopieren..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Abbrechen", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Quelle:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Ziel:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* German resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2004 Henning Gerhardt
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Dateien kopieren..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Abbrechen", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Quelle:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Ziel:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+34
-34
@@ -1,34 +1,34 @@
|
||||
/*
|
||||
* English resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copying Files..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Source:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destination:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* English resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copying Files..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Source:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destination:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+34
-34
@@ -1,34 +1,34 @@
|
||||
/*
|
||||
* Spanish resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2003 José Manuel Ferrer Ortiz
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copiando archivos..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Cancelar", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Origen:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destino:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* Spanish resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2003 José Manuel Ferrer Ortiz
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copiando archivos..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Cancelar", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Origen:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destino:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+35
-35
@@ -1,35 +1,35 @@
|
||||
/*
|
||||
* French resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
* Copyright 2003 Vincent Béron
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copie de fichiers..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Annuler", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Source:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destination:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* French resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
* Copyright 2003 Vincent Béron
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copie de fichiers..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Annuler", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Source:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destination:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+35
-35
@@ -1,35 +1,35 @@
|
||||
/*
|
||||
* Italian resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
* Copyright 2003 Ivan Leo Puoti
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copia dei file in corso..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Anulla", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Origine:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destinazione:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* Italian resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
* Copyright 2003 Ivan Leo Puoti
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copia dei file in corso..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Anulla", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Origine:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destinazione:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+34
-34
@@ -1,34 +1,34 @@
|
||||
/*
|
||||
* Japanese resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2004 Hajime Segawa
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "ファイルをコピーしています..."
|
||||
FONT 9, "MS UI Gothic"
|
||||
BEGIN
|
||||
PUSHBUTTON "キャンセル", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "コピー元:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "コピー先:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* Japanese resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2004 Hajime Segawa
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "ファイルをコピーしています..."
|
||||
FONT 9, "MS UI Gothic"
|
||||
BEGIN
|
||||
PUSHBUTTON "キャンセル", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "コピー元:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "コピー先:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
EXTRADEFS = -D_SETUPAPI_
|
||||
TOPSRCDIR = @top_srcdir@
|
||||
TOPOBJDIR = ../..
|
||||
SRCDIR = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
MODULE = setupapi.dll
|
||||
IMPORTLIB = libsetupapi.$(IMPLIBEXT)
|
||||
IMPORTS = user32 version advapi32 rpcrt4 kernel32 ntdll
|
||||
DELAYIMPORTS = shell32
|
||||
EXTRALIBS = $(LIBUNICODE)
|
||||
|
||||
C_SRCS = \
|
||||
pnp_c.c \
|
||||
cfgmgr.c \
|
||||
devinst.c \
|
||||
dirid.c \
|
||||
diskspace.c \
|
||||
install.c \
|
||||
misc.c \
|
||||
parser.c \
|
||||
queue.c \
|
||||
setupcab.c \
|
||||
stringtable.c \
|
||||
stubs.c \
|
||||
rpc.c
|
||||
|
||||
C_SRCS16 = \
|
||||
devinst16.c \
|
||||
infparse.c \
|
||||
setupx_main.c \
|
||||
virtcopy.c
|
||||
|
||||
SPEC_SRCS16 = setupx.spec
|
||||
|
||||
RC_SRCS= setupapi.rc
|
||||
|
||||
@MAKE_DLL_RULES@
|
||||
|
||||
### Dependencies:
|
||||
EXTRADEFS = -D_SETUPAPI_
|
||||
TOPSRCDIR = @top_srcdir@
|
||||
TOPOBJDIR = ../..
|
||||
SRCDIR = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
MODULE = setupapi.dll
|
||||
IMPORTLIB = libsetupapi.$(IMPLIBEXT)
|
||||
IMPORTS = user32 version advapi32 rpcrt4 kernel32 ntdll
|
||||
DELAYIMPORTS = shell32
|
||||
EXTRALIBS = $(LIBUNICODE)
|
||||
|
||||
C_SRCS = \
|
||||
pnp_c.c \
|
||||
cfgmgr.c \
|
||||
devinst.c \
|
||||
dirid.c \
|
||||
diskspace.c \
|
||||
install.c \
|
||||
misc.c \
|
||||
parser.c \
|
||||
queue.c \
|
||||
setupcab.c \
|
||||
stringtable.c \
|
||||
stubs.c \
|
||||
rpc.c
|
||||
|
||||
C_SRCS16 = \
|
||||
devinst16.c \
|
||||
infparse.c \
|
||||
setupx_main.c \
|
||||
virtcopy.c
|
||||
|
||||
SPEC_SRCS16 = setupx.spec
|
||||
|
||||
RC_SRCS= setupapi.rc
|
||||
|
||||
@MAKE_DLL_RULES@
|
||||
|
||||
### Dependencies:
|
||||
|
||||
+34
-34
@@ -1,34 +1,34 @@
|
||||
/*
|
||||
* setupapi (Dutch resources)
|
||||
*
|
||||
* Copyright 2003 Hans Leidekker
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Bestanden worden gekopiëerd..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Annuleren", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Bron:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Bestemming:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* setupapi (Dutch resources)
|
||||
*
|
||||
* Copyright 2003 Hans Leidekker
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Bestanden worden gekopiëerd..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Annuleren", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Bron:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Bestemming:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+50
-50
@@ -1,50 +1,50 @@
|
||||
/*
|
||||
* Portuguese resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2003 Marcelo Duarte
|
||||
* Copyright 2004 Américo José Melo
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copiando arquivos..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Cancelar", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Origem:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destino:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "A copiar ficheiros..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Cancelar", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Origem:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destino:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* Portuguese resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2003 Marcelo Duarte
|
||||
* Copyright 2004 Américo José Melo
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Copiando arquivos..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Cancelar", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Origem:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destino:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "A copiar ficheiros..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Cancelar", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Origem:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destino:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+34
-34
@@ -1,34 +1,34 @@
|
||||
/*
|
||||
* SETUPAPI (Russian resources)
|
||||
*
|
||||
* Copyright 2003 Igor Stepin
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Êîïèðîâàíèå ôàéëîâ..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Îòìåíà", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Îòêóäà:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Êóäà:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* SETUPAPI (Russian resources)
|
||||
*
|
||||
* Copyright 2003 Igor Stepin
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Êîïèðîâàíèå ôàéëîâ..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Îòìåíà", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Îòêóäà:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Êóäà:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+34
-34
@@ -1,34 +1,34 @@
|
||||
/*
|
||||
* Swedish resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2005 Anders Bergh
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Kopierar filer..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Avbryt", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Källa:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destination:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
/*
|
||||
* Swedish resources for SETUPAPI
|
||||
*
|
||||
* Copyright 2005 Anders Bergh
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
|
||||
|
||||
COPYFILEDLGORD DIALOG LOADONCALL MOVEABLE DISCARDABLE 20, 20, 208, 105
|
||||
STYLE DS_MODALFRAME | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Kopierar filer..."
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
PUSHBUTTON "Avbryt", IDCANCEL, 79, 84, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
LTEXT "Källa:", -1, 7, 7, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", SOURCESTRORD, 7, 18, 194, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "Destination:", -1, 7, 30, 77, 11, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
LTEXT "", DESTSTRORD, 7, 41, 194, 22, WS_CHILD | WS_VISIBLE | WS_GROUP
|
||||
CONTROL "", PROGRESSORD, "setupx_progress", 7, 63, 194, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
+362
-362
@@ -1,362 +1,362 @@
|
||||
/*
|
||||
* Configuration manager functions
|
||||
*
|
||||
* Copyright 2000 James Hatheway
|
||||
* Copyright 2005 Eric Kohl
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "winreg.h"
|
||||
#include "setupapi.h"
|
||||
#include "cfgmgr32.h"
|
||||
#include "setupapi_private.h"
|
||||
|
||||
#include "rpc.h"
|
||||
|
||||
#include "pnp_c.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
typedef struct _MACHINE_INFO
|
||||
{
|
||||
RPC_BINDING_HANDLE BindingHandle;
|
||||
} MACHINE_INFO, *PMACHINE_INFO;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Connect_MachineA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Connect_MachineA(PCSTR UNCServerName, PHMACHINE phMachine)
|
||||
{
|
||||
PWSTR pServerNameW;
|
||||
CONFIGRET ret;
|
||||
|
||||
TRACE("%s %p\n", UNCServerName, phMachine);
|
||||
|
||||
if (UNCServerName == NULL || *UNCServerName == 0)
|
||||
return CM_Connect_MachineW(NULL, phMachine);
|
||||
|
||||
if (CaptureAndConvertAnsiArg(UNCServerName, &pServerNameW))
|
||||
return CR_INVALID_DATA;
|
||||
|
||||
ret = CM_Connect_MachineW(pServerNameW, phMachine);
|
||||
|
||||
MyFree(pServerNameW);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Connect_MachineW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Connect_MachineW(PCWSTR UNCServerName, PHMACHINE phMachine)
|
||||
{
|
||||
PMACHINE_INFO pMachine;
|
||||
|
||||
TRACE("%s %p\n", debugstr_w(UNCServerName), phMachine);
|
||||
|
||||
pMachine = (PMACHINE_INFO)GlobalAlloc(GPTR, sizeof(MACHINE_INFO));
|
||||
if (pMachine == NULL)
|
||||
return CR_OUT_OF_MEMORY;
|
||||
|
||||
if (!PnpBindRpc(UNCServerName, &pMachine->BindingHandle))
|
||||
{
|
||||
GlobalFree(pMachine);
|
||||
return CR_INVALID_MACHINENAME;
|
||||
}
|
||||
|
||||
phMachine = (PHMACHINE)pMachine;
|
||||
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Disconnect_Machine [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Disconnect_Machine(HMACHINE hMachine)
|
||||
{
|
||||
PMACHINE_INFO pMachine;
|
||||
|
||||
TRACE("%lx\n", hMachine);
|
||||
|
||||
if (hMachine == NULL)
|
||||
return CR_SUCCESS;
|
||||
|
||||
pMachine = (PMACHINE_INFO)hMachine;
|
||||
if (!PnpUnbindRpc(pMachine->BindingHandle))
|
||||
return CR_ACCESS_DENIED;
|
||||
|
||||
GlobalFree(pMachine);
|
||||
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Child [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Child(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %p %lx\n", pdnDevInst, dnDevInst, ulFlags);
|
||||
return CM_Get_Sibling_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Child_Ex [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Child_Ex(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
TRACE("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_ListA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_ListA(
|
||||
PCSTR pszFilter, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
|
||||
{
|
||||
FIXME("%p %p %ld %ld\n", pszFilter, Buffer, BufferLen, ulFlags);
|
||||
memset(Buffer,0,2);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_ListW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_ListW(
|
||||
PCWSTR pszFilter, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
|
||||
{
|
||||
TRACE("%p %p %ld %ld\n", pszFilter, Buffer, BufferLen, ulFlags);
|
||||
return CM_Get_Device_ID_List_ExW(pszFilter, Buffer, BufferLen,
|
||||
ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_ExA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_ExA(
|
||||
PCSTR pszFilter, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags,
|
||||
HMACHINE hMachine )
|
||||
{
|
||||
FIXME("%p %p %ld %ld %lx\n",
|
||||
pszFilter, Buffer, BufferLen, ulFlags, hMachine);
|
||||
memset(Buffer,0,2);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_ExW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_ExW(
|
||||
PCWSTR pszFilter, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags,
|
||||
HMACHINE hMachine )
|
||||
{
|
||||
FIXME("%p %p %ld %ld %lx\n",
|
||||
pszFilter, Buffer, BufferLen, ulFlags, hMachine);
|
||||
memset(Buffer,0,2);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_SizeA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA(
|
||||
PULONG pulLen, PCSTR pszFilter, ULONG ulFlags)
|
||||
{
|
||||
FIXME("%p %s %ld\n", pulLen, pszFilter, ulFlags);
|
||||
*pulLen = 2;
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_SizeW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW(
|
||||
PULONG pulLen, PCWSTR pszFilter, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %s %ld\n", pulLen, debugstr_w(pszFilter), ulFlags);
|
||||
return CM_Get_Device_ID_List_Size_ExW(pulLen, pszFilter, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_Size_ExA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA(
|
||||
PULONG pulLen, PCSTR pszFilter, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
FIXME("%p %s %ld %lx\n", pulLen, pszFilter, ulFlags, hMachine);
|
||||
*pulLen = 2;
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_Size_ExW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW(
|
||||
PULONG pulLen, PCWSTR pszFilter, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
FIXME("%p %s %ld %lx\n", pulLen, debugstr_w(pszFilter), ulFlags, hMachine);
|
||||
*pulLen = 2;
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Parent [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Parent(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %p %lx\n", pdnDevInst, dnDevInst, ulFlags);
|
||||
return CM_Get_Sibling_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Parent_Ex [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Parent_Ex(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
TRACE("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Sibling [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Sibling(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %p %lx\n", pdnDevInst, dnDevInst, ulFlags);
|
||||
return CM_Get_Sibling_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Sibling_Ex [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Sibling_Ex(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
TRACE("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Version [SETUPAPI.@]
|
||||
*/
|
||||
WORD WINAPI CM_Get_Version(VOID)
|
||||
{
|
||||
TRACE("\n");
|
||||
return CM_Get_Version_Ex(NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Version_Ex [SETUPAPI.@]
|
||||
*/
|
||||
WORD WINAPI CM_Get_Version_Ex(HMACHINE hMachine)
|
||||
{
|
||||
RPC_BINDING_HANDLE BindingHandle = NULL;
|
||||
RPC_STATUS Status;
|
||||
|
||||
FIXME("%lx\n", hMachine);
|
||||
|
||||
if (hMachine != NULL)
|
||||
{
|
||||
BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
|
||||
if (BindingHandle == NULL)
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Status = PnpGetLocalBindingHandle(&BindingHandle);
|
||||
if (Status != RPC_S_OK)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return PNP_GetVersion(BindingHandle);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Locate_DevNodeA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Locate_DevNodeA(
|
||||
PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags)
|
||||
{
|
||||
FIXME("%p %p %lu\n", pdnDevInst, pDeviceID, ulFlags);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Locate_DevNodeW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Locate_DevNodeW(
|
||||
PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %p %lu\n", pdnDevInst, pDeviceID, ulFlags);
|
||||
return CM_Locate_DevNode_ExW(pdnDevInst, pDeviceID, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Locate_DevNode_ExA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Locate_DevNode_ExA(
|
||||
PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
FIXME("%p %p %lu %lx\n", pdnDevInst, pDeviceID, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Locate_DevNode_ExW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Locate_DevNode_ExW(
|
||||
PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
FIXME("%p %p %lu %lx\n", pdnDevInst, pDeviceID, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
/*
|
||||
* Configuration manager functions
|
||||
*
|
||||
* Copyright 2000 James Hatheway
|
||||
* Copyright 2005 Eric Kohl
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "winreg.h"
|
||||
#include "setupapi.h"
|
||||
#include "cfgmgr32.h"
|
||||
#include "setupapi_private.h"
|
||||
|
||||
#include "rpc.h"
|
||||
|
||||
#include "pnp_c.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
typedef struct _MACHINE_INFO
|
||||
{
|
||||
RPC_BINDING_HANDLE BindingHandle;
|
||||
} MACHINE_INFO, *PMACHINE_INFO;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Connect_MachineA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Connect_MachineA(PCSTR UNCServerName, PHMACHINE phMachine)
|
||||
{
|
||||
PWSTR pServerNameW;
|
||||
CONFIGRET ret;
|
||||
|
||||
TRACE("%s %p\n", UNCServerName, phMachine);
|
||||
|
||||
if (UNCServerName == NULL || *UNCServerName == 0)
|
||||
return CM_Connect_MachineW(NULL, phMachine);
|
||||
|
||||
if (CaptureAndConvertAnsiArg(UNCServerName, &pServerNameW))
|
||||
return CR_INVALID_DATA;
|
||||
|
||||
ret = CM_Connect_MachineW(pServerNameW, phMachine);
|
||||
|
||||
MyFree(pServerNameW);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Connect_MachineW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Connect_MachineW(PCWSTR UNCServerName, PHMACHINE phMachine)
|
||||
{
|
||||
PMACHINE_INFO pMachine;
|
||||
|
||||
TRACE("%s %p\n", debugstr_w(UNCServerName), phMachine);
|
||||
|
||||
pMachine = (PMACHINE_INFO)GlobalAlloc(GPTR, sizeof(MACHINE_INFO));
|
||||
if (pMachine == NULL)
|
||||
return CR_OUT_OF_MEMORY;
|
||||
|
||||
if (!PnpBindRpc(UNCServerName, &pMachine->BindingHandle))
|
||||
{
|
||||
GlobalFree(pMachine);
|
||||
return CR_INVALID_MACHINENAME;
|
||||
}
|
||||
|
||||
phMachine = (PHMACHINE)pMachine;
|
||||
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Disconnect_Machine [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Disconnect_Machine(HMACHINE hMachine)
|
||||
{
|
||||
PMACHINE_INFO pMachine;
|
||||
|
||||
TRACE("%lx\n", hMachine);
|
||||
|
||||
if (hMachine == NULL)
|
||||
return CR_SUCCESS;
|
||||
|
||||
pMachine = (PMACHINE_INFO)hMachine;
|
||||
if (!PnpUnbindRpc(pMachine->BindingHandle))
|
||||
return CR_ACCESS_DENIED;
|
||||
|
||||
GlobalFree(pMachine);
|
||||
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Child [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Child(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %p %lx\n", pdnDevInst, dnDevInst, ulFlags);
|
||||
return CM_Get_Sibling_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Child_Ex [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Child_Ex(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
TRACE("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_ListA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_ListA(
|
||||
PCSTR pszFilter, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
|
||||
{
|
||||
FIXME("%p %p %ld %ld\n", pszFilter, Buffer, BufferLen, ulFlags);
|
||||
memset(Buffer,0,2);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_ListW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_ListW(
|
||||
PCWSTR pszFilter, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
|
||||
{
|
||||
TRACE("%p %p %ld %ld\n", pszFilter, Buffer, BufferLen, ulFlags);
|
||||
return CM_Get_Device_ID_List_ExW(pszFilter, Buffer, BufferLen,
|
||||
ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_ExA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_ExA(
|
||||
PCSTR pszFilter, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags,
|
||||
HMACHINE hMachine )
|
||||
{
|
||||
FIXME("%p %p %ld %ld %lx\n",
|
||||
pszFilter, Buffer, BufferLen, ulFlags, hMachine);
|
||||
memset(Buffer,0,2);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_ExW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_ExW(
|
||||
PCWSTR pszFilter, PWCHAR Buffer, ULONG BufferLen, ULONG ulFlags,
|
||||
HMACHINE hMachine )
|
||||
{
|
||||
FIXME("%p %p %ld %ld %lx\n",
|
||||
pszFilter, Buffer, BufferLen, ulFlags, hMachine);
|
||||
memset(Buffer,0,2);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_SizeA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA(
|
||||
PULONG pulLen, PCSTR pszFilter, ULONG ulFlags)
|
||||
{
|
||||
FIXME("%p %s %ld\n", pulLen, pszFilter, ulFlags);
|
||||
*pulLen = 2;
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_SizeW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW(
|
||||
PULONG pulLen, PCWSTR pszFilter, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %s %ld\n", pulLen, debugstr_w(pszFilter), ulFlags);
|
||||
return CM_Get_Device_ID_List_Size_ExW(pulLen, pszFilter, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_Size_ExA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA(
|
||||
PULONG pulLen, PCSTR pszFilter, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
FIXME("%p %s %ld %lx\n", pulLen, pszFilter, ulFlags, hMachine);
|
||||
*pulLen = 2;
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Device_ID_List_Size_ExW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW(
|
||||
PULONG pulLen, PCWSTR pszFilter, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
FIXME("%p %s %ld %lx\n", pulLen, debugstr_w(pszFilter), ulFlags, hMachine);
|
||||
*pulLen = 2;
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Parent [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Parent(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %p %lx\n", pdnDevInst, dnDevInst, ulFlags);
|
||||
return CM_Get_Sibling_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Parent_Ex [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Parent_Ex(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
TRACE("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Sibling [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Sibling(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %p %lx\n", pdnDevInst, dnDevInst, ulFlags);
|
||||
return CM_Get_Sibling_Ex(pdnDevInst, dnDevInst, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Sibling_Ex [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Get_Sibling_Ex(
|
||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
TRACE("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Version [SETUPAPI.@]
|
||||
*/
|
||||
WORD WINAPI CM_Get_Version(VOID)
|
||||
{
|
||||
TRACE("\n");
|
||||
return CM_Get_Version_Ex(NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Get_Version_Ex [SETUPAPI.@]
|
||||
*/
|
||||
WORD WINAPI CM_Get_Version_Ex(HMACHINE hMachine)
|
||||
{
|
||||
RPC_BINDING_HANDLE BindingHandle = NULL;
|
||||
RPC_STATUS Status;
|
||||
|
||||
FIXME("%lx\n", hMachine);
|
||||
|
||||
if (hMachine != NULL)
|
||||
{
|
||||
BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
|
||||
if (BindingHandle == NULL)
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Status = PnpGetLocalBindingHandle(&BindingHandle);
|
||||
if (Status != RPC_S_OK)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return PNP_GetVersion(BindingHandle);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Locate_DevNodeA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Locate_DevNodeA(
|
||||
PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags)
|
||||
{
|
||||
FIXME("%p %p %lu\n", pdnDevInst, pDeviceID, ulFlags);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Locate_DevNodeW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Locate_DevNodeW(
|
||||
PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags)
|
||||
{
|
||||
TRACE("%p %p %lu\n", pdnDevInst, pDeviceID, ulFlags);
|
||||
return CM_Locate_DevNode_ExW(pdnDevInst, pDeviceID, ulFlags, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Locate_DevNode_ExA [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Locate_DevNode_ExA(
|
||||
PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
FIXME("%p %p %lu %lx\n", pdnDevInst, pDeviceID, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* CM_Locate_DevNode_ExW [SETUPAPI.@]
|
||||
*/
|
||||
CONFIGRET WINAPI CM_Locate_DevNode_ExW(
|
||||
PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags, HMACHINE hMachine)
|
||||
{
|
||||
FIXME("%p %p %lu %lx\n", pdnDevInst, pDeviceID, ulFlags, hMachine);
|
||||
return CR_SUCCESS;
|
||||
}
|
||||
|
||||
+1537
-1537
File diff suppressed because it is too large
Load Diff
+134
-134
@@ -1,134 +1,134 @@
|
||||
/*
|
||||
* SetupAPI device installer
|
||||
*
|
||||
* Copyright 2000 Andreas Mohr for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "setupx16.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
/***********************************************************************
|
||||
* DiGetClassDevs (SETUPX.304)
|
||||
* Return a list of installed system devices.
|
||||
* Uses HKLM\\ENUM to list devices.
|
||||
*/
|
||||
RETERR16 WINAPI DiGetClassDevs16(LPLPDEVICE_INFO16 lplpdi,
|
||||
LPCSTR lpszClassName, HWND16 hwndParent, INT16 iFlags)
|
||||
{
|
||||
LPDEVICE_INFO16 lpdi;
|
||||
|
||||
FIXME("(%p, '%s', %04x, %04x), semi-stub.\n",
|
||||
lplpdi, lpszClassName, hwndParent, iFlags);
|
||||
lpdi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DEVICE_INFO16));
|
||||
lpdi->cbSize = sizeof(DEVICE_INFO16);
|
||||
*lplpdi = (LPDEVICE_INFO16)MapLS(lpdi);
|
||||
return OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiBuildCompatDrvList (SETUPX.300)
|
||||
*/
|
||||
RETERR16 WINAPI DiBuildCompatDrvList16(LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%p): stub\n", lpdi);
|
||||
lpdi->lpCompatDrvList = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiBuildClassDrvList (SETUPX.301)
|
||||
*/
|
||||
RETERR16 WINAPI DiBuildClassDrvList16(LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%p): stub\n", lpdi);
|
||||
lpdi->lpCompatDrvList = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiCallClassInstaller (SETUPX.308)
|
||||
*/
|
||||
RETERR16 WINAPI DiCallClassInstaller16(DI_FUNCTION16 diFctn, LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%x, %p): stub\n", diFctn, lpdi);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiCreateDevRegKey (SETUPX.318)
|
||||
*/
|
||||
RETERR16 WINAPI DiCreateDevRegKey16(LPDEVICE_INFO16 lpdi,
|
||||
VOID* p2, WORD w3,
|
||||
LPCSTR s4, WORD w5)
|
||||
{
|
||||
FIXME("(%p, %p, %x, %s, %x): stub\n", lpdi, p2, w3, debugstr_a(s4), w5);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiDeleteDevRegKey (SETUPX.344)
|
||||
*/
|
||||
RETERR16 WINAPI DiDeleteDevRegKey16(LPDEVICE_INFO16 lpdi, INT16 iFlags)
|
||||
{
|
||||
FIXME("(%p, %x): stub\n", lpdi, iFlags);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiCreateDeviceInfo (SETUPX.303)
|
||||
*/
|
||||
RETERR16 WINAPI DiCreateDeviceInfo16(LPLPDEVICE_INFO16 lplpdi,
|
||||
LPCSTR lpszDescription, DWORD dnDevnode,
|
||||
HKEY16 hkey, LPCSTR lpszRegsubkey,
|
||||
LPCSTR lpszClassName, HWND16 hwndParent)
|
||||
{
|
||||
LPDEVICE_INFO16 lpdi;
|
||||
FIXME("(%p %s %08lx %x %s %s %x): stub\n", lplpdi,
|
||||
debugstr_a(lpszDescription), dnDevnode, hkey,
|
||||
debugstr_a(lpszRegsubkey), debugstr_a(lpszClassName), hwndParent);
|
||||
lpdi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DEVICE_INFO16));
|
||||
lpdi->cbSize = sizeof(DEVICE_INFO16);
|
||||
strcpy(lpdi->szClassName, lpszClassName);
|
||||
lpdi->hwndParent = hwndParent;
|
||||
*lplpdi = (LPDEVICE_INFO16)MapLS(lpdi);
|
||||
return OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiDestroyDeviceInfoList (SETUPX.305)
|
||||
*/
|
||||
RETERR16 WINAPI DiDestroyDeviceInfoList16(LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%p): stub\n", lpdi);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiOpenDevRegKey (SETUPX.319)
|
||||
*/
|
||||
RETERR16 WINAPI DiOpenDevRegKey16(LPDEVICE_INFO16 lpdi,
|
||||
LPHKEY16 lphk,INT16 iFlags)
|
||||
{
|
||||
FIXME("(%p %p %d): stub\n", lpdi, lphk, iFlags);
|
||||
return FALSE;
|
||||
}
|
||||
/*
|
||||
* SetupAPI device installer
|
||||
*
|
||||
* Copyright 2000 Andreas Mohr for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "setupx16.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
/***********************************************************************
|
||||
* DiGetClassDevs (SETUPX.304)
|
||||
* Return a list of installed system devices.
|
||||
* Uses HKLM\\ENUM to list devices.
|
||||
*/
|
||||
RETERR16 WINAPI DiGetClassDevs16(LPLPDEVICE_INFO16 lplpdi,
|
||||
LPCSTR lpszClassName, HWND16 hwndParent, INT16 iFlags)
|
||||
{
|
||||
LPDEVICE_INFO16 lpdi;
|
||||
|
||||
FIXME("(%p, '%s', %04x, %04x), semi-stub.\n",
|
||||
lplpdi, lpszClassName, hwndParent, iFlags);
|
||||
lpdi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DEVICE_INFO16));
|
||||
lpdi->cbSize = sizeof(DEVICE_INFO16);
|
||||
*lplpdi = (LPDEVICE_INFO16)MapLS(lpdi);
|
||||
return OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiBuildCompatDrvList (SETUPX.300)
|
||||
*/
|
||||
RETERR16 WINAPI DiBuildCompatDrvList16(LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%p): stub\n", lpdi);
|
||||
lpdi->lpCompatDrvList = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiBuildClassDrvList (SETUPX.301)
|
||||
*/
|
||||
RETERR16 WINAPI DiBuildClassDrvList16(LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%p): stub\n", lpdi);
|
||||
lpdi->lpCompatDrvList = NULL;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiCallClassInstaller (SETUPX.308)
|
||||
*/
|
||||
RETERR16 WINAPI DiCallClassInstaller16(DI_FUNCTION16 diFctn, LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%x, %p): stub\n", diFctn, lpdi);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiCreateDevRegKey (SETUPX.318)
|
||||
*/
|
||||
RETERR16 WINAPI DiCreateDevRegKey16(LPDEVICE_INFO16 lpdi,
|
||||
VOID* p2, WORD w3,
|
||||
LPCSTR s4, WORD w5)
|
||||
{
|
||||
FIXME("(%p, %p, %x, %s, %x): stub\n", lpdi, p2, w3, debugstr_a(s4), w5);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiDeleteDevRegKey (SETUPX.344)
|
||||
*/
|
||||
RETERR16 WINAPI DiDeleteDevRegKey16(LPDEVICE_INFO16 lpdi, INT16 iFlags)
|
||||
{
|
||||
FIXME("(%p, %x): stub\n", lpdi, iFlags);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiCreateDeviceInfo (SETUPX.303)
|
||||
*/
|
||||
RETERR16 WINAPI DiCreateDeviceInfo16(LPLPDEVICE_INFO16 lplpdi,
|
||||
LPCSTR lpszDescription, DWORD dnDevnode,
|
||||
HKEY16 hkey, LPCSTR lpszRegsubkey,
|
||||
LPCSTR lpszClassName, HWND16 hwndParent)
|
||||
{
|
||||
LPDEVICE_INFO16 lpdi;
|
||||
FIXME("(%p %s %08lx %x %s %s %x): stub\n", lplpdi,
|
||||
debugstr_a(lpszDescription), dnDevnode, hkey,
|
||||
debugstr_a(lpszRegsubkey), debugstr_a(lpszClassName), hwndParent);
|
||||
lpdi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DEVICE_INFO16));
|
||||
lpdi->cbSize = sizeof(DEVICE_INFO16);
|
||||
strcpy(lpdi->szClassName, lpszClassName);
|
||||
lpdi->hwndParent = hwndParent;
|
||||
*lplpdi = (LPDEVICE_INFO16)MapLS(lpdi);
|
||||
return OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiDestroyDeviceInfoList (SETUPX.305)
|
||||
*/
|
||||
RETERR16 WINAPI DiDestroyDeviceInfoList16(LPDEVICE_INFO16 lpdi)
|
||||
{
|
||||
FIXME("(%p): stub\n", lpdi);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DiOpenDevRegKey (SETUPX.319)
|
||||
*/
|
||||
RETERR16 WINAPI DiOpenDevRegKey16(LPDEVICE_INFO16 lpdi,
|
||||
LPHKEY16 lphk,INT16 iFlags)
|
||||
{
|
||||
FIXME("(%p %p %d): stub\n", lpdi, lphk, iFlags);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+288
-288
@@ -1,288 +1,288 @@
|
||||
/*
|
||||
* Directory id handling
|
||||
*
|
||||
* Copyright 2002 Alexandre Julliard for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winreg.h"
|
||||
#include "winternl.h"
|
||||
#include "winerror.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "setupapi.h"
|
||||
#include "shlobj.h"
|
||||
#include "wine/unicode.h"
|
||||
#include "setupapi_private.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
#define MAX_SYSTEM_DIRID DIRID_PRINTPROCESSOR
|
||||
#define MIN_CSIDL_DIRID 0x4000
|
||||
#define MAX_CSIDL_DIRID 0x403f
|
||||
|
||||
struct user_dirid
|
||||
{
|
||||
int id;
|
||||
WCHAR *str;
|
||||
};
|
||||
|
||||
static int nb_user_dirids; /* number of user dirids in use */
|
||||
static int alloc_user_dirids; /* number of allocated user dirids */
|
||||
static struct user_dirid *user_dirids;
|
||||
static const WCHAR *system_dirids[MAX_SYSTEM_DIRID+1];
|
||||
static const WCHAR *csidl_dirids[MAX_CSIDL_DIRID-MIN_CSIDL_DIRID+1];
|
||||
|
||||
/* retrieve the string for unknown dirids */
|
||||
static const WCHAR *get_unknown_dirid(void)
|
||||
{
|
||||
static WCHAR *unknown_dirid;
|
||||
static const WCHAR unknown_str[] = {'\\','u','n','k','n','o','w','n',0};
|
||||
|
||||
if (!unknown_dirid)
|
||||
{
|
||||
UINT len = GetSystemDirectoryW( NULL, 0 ) + strlenW(unknown_str);
|
||||
if (!(unknown_dirid = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ))) return NULL;
|
||||
GetSystemDirectoryW( unknown_dirid, len );
|
||||
strcatW( unknown_dirid, unknown_str );
|
||||
}
|
||||
return unknown_dirid;
|
||||
}
|
||||
|
||||
static const WCHAR *get_csidl_dir(DWORD csidl);
|
||||
|
||||
/* create the string for a system dirid */
|
||||
static const WCHAR *create_system_dirid( int dirid )
|
||||
{
|
||||
static const WCHAR Null[] = {0};
|
||||
static const WCHAR C_Root[] = {'C',':','\\',0};
|
||||
static const WCHAR Drivers[] = {'\\','d','r','i','v','e','r','s',0};
|
||||
static const WCHAR Inf[] = {'\\','i','n','f',0};
|
||||
static const WCHAR Help[] = {'\\','h','e','l','p',0};
|
||||
static const WCHAR Fonts[] = {'\\','f','o','n','t','s',0};
|
||||
static const WCHAR Viewers[] = {'\\','v','i','e','w','e','r','s',0};
|
||||
static const WCHAR System[] = {'\\','s','y','s','t','e','m',0};
|
||||
static const WCHAR Spool[] = {'\\','s','p','o','o','l',0};
|
||||
static const WCHAR UserProfile[] = {'U','S','E','R','P','R','O','F','I','L','E',0};
|
||||
|
||||
WCHAR buffer[MAX_PATH+32], *str;
|
||||
int len;
|
||||
|
||||
switch(dirid)
|
||||
{
|
||||
case DIRID_NULL:
|
||||
return Null;
|
||||
case DIRID_WINDOWS:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
break;
|
||||
case DIRID_SYSTEM:
|
||||
GetSystemDirectoryW( buffer, MAX_PATH );
|
||||
break;
|
||||
case DIRID_DRIVERS:
|
||||
GetSystemDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Drivers );
|
||||
break;
|
||||
case DIRID_INF:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Inf );
|
||||
break;
|
||||
case DIRID_HELP:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Help );
|
||||
break;
|
||||
case DIRID_FONTS:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Fonts );
|
||||
break;
|
||||
case DIRID_VIEWERS:
|
||||
GetSystemDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Viewers );
|
||||
break;
|
||||
case DIRID_APPS:
|
||||
return C_Root; /* FIXME */
|
||||
case DIRID_SHARED:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
break;
|
||||
case DIRID_BOOT:
|
||||
return C_Root; /* FIXME */
|
||||
case DIRID_SYSTEM16:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, System );
|
||||
break;
|
||||
case DIRID_SPOOL:
|
||||
case DIRID_SPOOLDRIVERS: /* FIXME */
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Spool );
|
||||
break;
|
||||
case DIRID_USERPROFILE:
|
||||
if (GetEnvironmentVariableW( UserProfile, buffer, MAX_PATH )) break;
|
||||
return get_csidl_dir(CSIDL_PROFILE);
|
||||
case DIRID_LOADER:
|
||||
return C_Root; /* FIXME */
|
||||
case DIRID_COLOR: /* FIXME */
|
||||
case DIRID_PRINTPROCESSOR: /* FIXME */
|
||||
default:
|
||||
FIXME( "unknown dirid %d\n", dirid );
|
||||
return get_unknown_dirid();
|
||||
}
|
||||
len = (strlenW(buffer) + 1) * sizeof(WCHAR);
|
||||
if ((str = HeapAlloc( GetProcessHeap(), 0, len ))) memcpy( str, buffer, len );
|
||||
return str;
|
||||
}
|
||||
|
||||
static const WCHAR *get_csidl_dir( DWORD csidl )
|
||||
{
|
||||
WCHAR buffer[MAX_PATH], *str;
|
||||
int len;
|
||||
|
||||
if (!SHGetSpecialFolderPathW( NULL, buffer, csidl, TRUE ))
|
||||
{
|
||||
FIXME( "CSIDL %lx not found\n", csidl );
|
||||
return get_unknown_dirid();
|
||||
}
|
||||
len = (strlenW(buffer) + 1) * sizeof(WCHAR);
|
||||
if ((str = HeapAlloc( GetProcessHeap(), 0, len ))) memcpy( str, buffer, len );
|
||||
return str;
|
||||
}
|
||||
|
||||
/* retrieve the string corresponding to a dirid, or NULL if none */
|
||||
const WCHAR *DIRID_get_string( HINF hinf, int dirid )
|
||||
{
|
||||
int i;
|
||||
|
||||
if (dirid == DIRID_ABSOLUTE || dirid == DIRID_ABSOLUTE_16BIT) dirid = DIRID_NULL;
|
||||
|
||||
if (dirid >= DIRID_USER)
|
||||
{
|
||||
for (i = 0; i < nb_user_dirids; i++)
|
||||
if (user_dirids[i].id == dirid) return user_dirids[i].str;
|
||||
ERR("user id %d not found\n", dirid );
|
||||
return NULL;
|
||||
}
|
||||
else if (dirid >= MIN_CSIDL_DIRID)
|
||||
{
|
||||
if (dirid > MAX_CSIDL_DIRID) return get_unknown_dirid();
|
||||
dirid -= MIN_CSIDL_DIRID;
|
||||
if (!csidl_dirids[dirid]) csidl_dirids[dirid] = get_csidl_dir( dirid );
|
||||
return csidl_dirids[dirid];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dirid > MAX_SYSTEM_DIRID) return get_unknown_dirid();
|
||||
if (dirid == DIRID_SRCPATH) return PARSER_get_src_root( hinf );
|
||||
if (!system_dirids[dirid]) system_dirids[dirid] = create_system_dirid( dirid );
|
||||
return system_dirids[dirid];
|
||||
}
|
||||
}
|
||||
|
||||
/* store a user dirid string */
|
||||
static BOOL store_user_dirid( HINF hinf, int id, WCHAR *str )
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < nb_user_dirids; i++) if (user_dirids[i].id == id) break;
|
||||
|
||||
if (i < nb_user_dirids) HeapFree( GetProcessHeap(), 0, user_dirids[i].str );
|
||||
else
|
||||
{
|
||||
if (nb_user_dirids >= alloc_user_dirids)
|
||||
{
|
||||
int new_size = max( 32, alloc_user_dirids * 2 );
|
||||
|
||||
struct user_dirid *new;
|
||||
|
||||
if (user_dirids)
|
||||
new = HeapReAlloc( GetProcessHeap(), 0, user_dirids,
|
||||
new_size * sizeof(*new) );
|
||||
else
|
||||
new = HeapAlloc( GetProcessHeap(), 0,
|
||||
new_size * sizeof(*new) );
|
||||
|
||||
if (!new) return FALSE;
|
||||
user_dirids = new;
|
||||
alloc_user_dirids = new_size;
|
||||
}
|
||||
nb_user_dirids++;
|
||||
}
|
||||
user_dirids[i].id = id;
|
||||
user_dirids[i].str = str;
|
||||
TRACE("id %d -> %s\n", id, debugstr_w(str) );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupSetDirectoryIdA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupSetDirectoryIdA( HINF hinf, DWORD id, PCSTR dir )
|
||||
{
|
||||
UNICODE_STRING dirW;
|
||||
int i;
|
||||
|
||||
if (!id) /* clear everything */
|
||||
{
|
||||
for (i = 0; i < nb_user_dirids; i++) HeapFree( GetProcessHeap(), 0, user_dirids[i].str );
|
||||
nb_user_dirids = 0;
|
||||
return TRUE;
|
||||
}
|
||||
if (id < DIRID_USER)
|
||||
{
|
||||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* duplicate the string */
|
||||
if (!RtlCreateUnicodeStringFromAsciiz( &dirW, dir ))
|
||||
{
|
||||
SetLastError( ERROR_NOT_ENOUGH_MEMORY );
|
||||
return FALSE;
|
||||
}
|
||||
return store_user_dirid( hinf, id, dirW.Buffer );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupSetDirectoryIdW (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupSetDirectoryIdW( HINF hinf, DWORD id, PCWSTR dir )
|
||||
{
|
||||
int i, len;
|
||||
WCHAR *str;
|
||||
|
||||
if (!id) /* clear everything */
|
||||
{
|
||||
for (i = 0; i < nb_user_dirids; i++) HeapFree( GetProcessHeap(), 0, user_dirids[i].str );
|
||||
nb_user_dirids = 0;
|
||||
return TRUE;
|
||||
}
|
||||
if (id < DIRID_USER)
|
||||
{
|
||||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* duplicate the string */
|
||||
len = (strlenW(dir)+1) * sizeof(WCHAR);
|
||||
if (!(str = HeapAlloc( GetProcessHeap(), 0, len ))) return FALSE;
|
||||
memcpy( str, dir, len );
|
||||
return store_user_dirid( hinf, id, str );
|
||||
}
|
||||
/*
|
||||
* Directory id handling
|
||||
*
|
||||
* Copyright 2002 Alexandre Julliard for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winreg.h"
|
||||
#include "winternl.h"
|
||||
#include "winerror.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "setupapi.h"
|
||||
#include "shlobj.h"
|
||||
#include "wine/unicode.h"
|
||||
#include "setupapi_private.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
#define MAX_SYSTEM_DIRID DIRID_PRINTPROCESSOR
|
||||
#define MIN_CSIDL_DIRID 0x4000
|
||||
#define MAX_CSIDL_DIRID 0x403f
|
||||
|
||||
struct user_dirid
|
||||
{
|
||||
int id;
|
||||
WCHAR *str;
|
||||
};
|
||||
|
||||
static int nb_user_dirids; /* number of user dirids in use */
|
||||
static int alloc_user_dirids; /* number of allocated user dirids */
|
||||
static struct user_dirid *user_dirids;
|
||||
static const WCHAR *system_dirids[MAX_SYSTEM_DIRID+1];
|
||||
static const WCHAR *csidl_dirids[MAX_CSIDL_DIRID-MIN_CSIDL_DIRID+1];
|
||||
|
||||
/* retrieve the string for unknown dirids */
|
||||
static const WCHAR *get_unknown_dirid(void)
|
||||
{
|
||||
static WCHAR *unknown_dirid;
|
||||
static const WCHAR unknown_str[] = {'\\','u','n','k','n','o','w','n',0};
|
||||
|
||||
if (!unknown_dirid)
|
||||
{
|
||||
UINT len = GetSystemDirectoryW( NULL, 0 ) + strlenW(unknown_str);
|
||||
if (!(unknown_dirid = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ))) return NULL;
|
||||
GetSystemDirectoryW( unknown_dirid, len );
|
||||
strcatW( unknown_dirid, unknown_str );
|
||||
}
|
||||
return unknown_dirid;
|
||||
}
|
||||
|
||||
static const WCHAR *get_csidl_dir(DWORD csidl);
|
||||
|
||||
/* create the string for a system dirid */
|
||||
static const WCHAR *create_system_dirid( int dirid )
|
||||
{
|
||||
static const WCHAR Null[] = {0};
|
||||
static const WCHAR C_Root[] = {'C',':','\\',0};
|
||||
static const WCHAR Drivers[] = {'\\','d','r','i','v','e','r','s',0};
|
||||
static const WCHAR Inf[] = {'\\','i','n','f',0};
|
||||
static const WCHAR Help[] = {'\\','h','e','l','p',0};
|
||||
static const WCHAR Fonts[] = {'\\','f','o','n','t','s',0};
|
||||
static const WCHAR Viewers[] = {'\\','v','i','e','w','e','r','s',0};
|
||||
static const WCHAR System[] = {'\\','s','y','s','t','e','m',0};
|
||||
static const WCHAR Spool[] = {'\\','s','p','o','o','l',0};
|
||||
static const WCHAR UserProfile[] = {'U','S','E','R','P','R','O','F','I','L','E',0};
|
||||
|
||||
WCHAR buffer[MAX_PATH+32], *str;
|
||||
int len;
|
||||
|
||||
switch(dirid)
|
||||
{
|
||||
case DIRID_NULL:
|
||||
return Null;
|
||||
case DIRID_WINDOWS:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
break;
|
||||
case DIRID_SYSTEM:
|
||||
GetSystemDirectoryW( buffer, MAX_PATH );
|
||||
break;
|
||||
case DIRID_DRIVERS:
|
||||
GetSystemDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Drivers );
|
||||
break;
|
||||
case DIRID_INF:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Inf );
|
||||
break;
|
||||
case DIRID_HELP:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Help );
|
||||
break;
|
||||
case DIRID_FONTS:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Fonts );
|
||||
break;
|
||||
case DIRID_VIEWERS:
|
||||
GetSystemDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Viewers );
|
||||
break;
|
||||
case DIRID_APPS:
|
||||
return C_Root; /* FIXME */
|
||||
case DIRID_SHARED:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
break;
|
||||
case DIRID_BOOT:
|
||||
return C_Root; /* FIXME */
|
||||
case DIRID_SYSTEM16:
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, System );
|
||||
break;
|
||||
case DIRID_SPOOL:
|
||||
case DIRID_SPOOLDRIVERS: /* FIXME */
|
||||
GetWindowsDirectoryW( buffer, MAX_PATH );
|
||||
strcatW( buffer, Spool );
|
||||
break;
|
||||
case DIRID_USERPROFILE:
|
||||
if (GetEnvironmentVariableW( UserProfile, buffer, MAX_PATH )) break;
|
||||
return get_csidl_dir(CSIDL_PROFILE);
|
||||
case DIRID_LOADER:
|
||||
return C_Root; /* FIXME */
|
||||
case DIRID_COLOR: /* FIXME */
|
||||
case DIRID_PRINTPROCESSOR: /* FIXME */
|
||||
default:
|
||||
FIXME( "unknown dirid %d\n", dirid );
|
||||
return get_unknown_dirid();
|
||||
}
|
||||
len = (strlenW(buffer) + 1) * sizeof(WCHAR);
|
||||
if ((str = HeapAlloc( GetProcessHeap(), 0, len ))) memcpy( str, buffer, len );
|
||||
return str;
|
||||
}
|
||||
|
||||
static const WCHAR *get_csidl_dir( DWORD csidl )
|
||||
{
|
||||
WCHAR buffer[MAX_PATH], *str;
|
||||
int len;
|
||||
|
||||
if (!SHGetSpecialFolderPathW( NULL, buffer, csidl, TRUE ))
|
||||
{
|
||||
FIXME( "CSIDL %lx not found\n", csidl );
|
||||
return get_unknown_dirid();
|
||||
}
|
||||
len = (strlenW(buffer) + 1) * sizeof(WCHAR);
|
||||
if ((str = HeapAlloc( GetProcessHeap(), 0, len ))) memcpy( str, buffer, len );
|
||||
return str;
|
||||
}
|
||||
|
||||
/* retrieve the string corresponding to a dirid, or NULL if none */
|
||||
const WCHAR *DIRID_get_string( HINF hinf, int dirid )
|
||||
{
|
||||
int i;
|
||||
|
||||
if (dirid == DIRID_ABSOLUTE || dirid == DIRID_ABSOLUTE_16BIT) dirid = DIRID_NULL;
|
||||
|
||||
if (dirid >= DIRID_USER)
|
||||
{
|
||||
for (i = 0; i < nb_user_dirids; i++)
|
||||
if (user_dirids[i].id == dirid) return user_dirids[i].str;
|
||||
ERR("user id %d not found\n", dirid );
|
||||
return NULL;
|
||||
}
|
||||
else if (dirid >= MIN_CSIDL_DIRID)
|
||||
{
|
||||
if (dirid > MAX_CSIDL_DIRID) return get_unknown_dirid();
|
||||
dirid -= MIN_CSIDL_DIRID;
|
||||
if (!csidl_dirids[dirid]) csidl_dirids[dirid] = get_csidl_dir( dirid );
|
||||
return csidl_dirids[dirid];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dirid > MAX_SYSTEM_DIRID) return get_unknown_dirid();
|
||||
if (dirid == DIRID_SRCPATH) return PARSER_get_src_root( hinf );
|
||||
if (!system_dirids[dirid]) system_dirids[dirid] = create_system_dirid( dirid );
|
||||
return system_dirids[dirid];
|
||||
}
|
||||
}
|
||||
|
||||
/* store a user dirid string */
|
||||
static BOOL store_user_dirid( HINF hinf, int id, WCHAR *str )
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < nb_user_dirids; i++) if (user_dirids[i].id == id) break;
|
||||
|
||||
if (i < nb_user_dirids) HeapFree( GetProcessHeap(), 0, user_dirids[i].str );
|
||||
else
|
||||
{
|
||||
if (nb_user_dirids >= alloc_user_dirids)
|
||||
{
|
||||
int new_size = max( 32, alloc_user_dirids * 2 );
|
||||
|
||||
struct user_dirid *new;
|
||||
|
||||
if (user_dirids)
|
||||
new = HeapReAlloc( GetProcessHeap(), 0, user_dirids,
|
||||
new_size * sizeof(*new) );
|
||||
else
|
||||
new = HeapAlloc( GetProcessHeap(), 0,
|
||||
new_size * sizeof(*new) );
|
||||
|
||||
if (!new) return FALSE;
|
||||
user_dirids = new;
|
||||
alloc_user_dirids = new_size;
|
||||
}
|
||||
nb_user_dirids++;
|
||||
}
|
||||
user_dirids[i].id = id;
|
||||
user_dirids[i].str = str;
|
||||
TRACE("id %d -> %s\n", id, debugstr_w(str) );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupSetDirectoryIdA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupSetDirectoryIdA( HINF hinf, DWORD id, PCSTR dir )
|
||||
{
|
||||
UNICODE_STRING dirW;
|
||||
int i;
|
||||
|
||||
if (!id) /* clear everything */
|
||||
{
|
||||
for (i = 0; i < nb_user_dirids; i++) HeapFree( GetProcessHeap(), 0, user_dirids[i].str );
|
||||
nb_user_dirids = 0;
|
||||
return TRUE;
|
||||
}
|
||||
if (id < DIRID_USER)
|
||||
{
|
||||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* duplicate the string */
|
||||
if (!RtlCreateUnicodeStringFromAsciiz( &dirW, dir ))
|
||||
{
|
||||
SetLastError( ERROR_NOT_ENOUGH_MEMORY );
|
||||
return FALSE;
|
||||
}
|
||||
return store_user_dirid( hinf, id, dirW.Buffer );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupSetDirectoryIdW (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupSetDirectoryIdW( HINF hinf, DWORD id, PCWSTR dir )
|
||||
{
|
||||
int i, len;
|
||||
WCHAR *str;
|
||||
|
||||
if (!id) /* clear everything */
|
||||
{
|
||||
for (i = 0; i < nb_user_dirids; i++) HeapFree( GetProcessHeap(), 0, user_dirids[i].str );
|
||||
nb_user_dirids = 0;
|
||||
return TRUE;
|
||||
}
|
||||
if (id < DIRID_USER)
|
||||
{
|
||||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* duplicate the string */
|
||||
len = (strlenW(dir)+1) * sizeof(WCHAR);
|
||||
if (!(str = HeapAlloc( GetProcessHeap(), 0, len ))) return FALSE;
|
||||
memcpy( str, dir, len );
|
||||
return store_user_dirid( hinf, id, str );
|
||||
}
|
||||
|
||||
+153
-153
@@ -1,153 +1,153 @@
|
||||
/*
|
||||
* SetupAPI DiskSpace functions
|
||||
*
|
||||
* Copyright 2004 CodeWeavers (Aric Stewart)
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "winreg.h"
|
||||
#include "setupapi.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
typedef struct {
|
||||
WCHAR lpzName[20];
|
||||
LONGLONG dwFreeSpace;
|
||||
LONGLONG dwWantedSpace;
|
||||
} DRIVE_ENTRY, *LPDRIVE_ENTRY;
|
||||
|
||||
typedef struct {
|
||||
DWORD dwDriveCount;
|
||||
DRIVE_ENTRY Drives[26];
|
||||
} DISKSPACELIST, *LPDISKSPACELIST;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupCreateDiskSpaceListW (SETUPAPI.@)
|
||||
*/
|
||||
HDSKSPC WINAPI SetupCreateDiskSpaceListW(PVOID Reserved1, DWORD Reserved2, UINT Flags)
|
||||
{
|
||||
WCHAR drives[255];
|
||||
DWORD rc;
|
||||
WCHAR *ptr;
|
||||
LPDISKSPACELIST list=NULL;
|
||||
|
||||
rc = GetLogicalDriveStringsW(255,drives);
|
||||
|
||||
if (rc == 0)
|
||||
return NULL;
|
||||
|
||||
list = HeapAlloc(GetProcessHeap(),0,sizeof(DISKSPACELIST));
|
||||
|
||||
list->dwDriveCount = 0;
|
||||
|
||||
ptr = drives;
|
||||
|
||||
while (*ptr)
|
||||
{
|
||||
DWORD type = GetDriveTypeW(ptr);
|
||||
DWORD len;
|
||||
if (type == DRIVE_FIXED)
|
||||
{
|
||||
DWORD clusters;
|
||||
DWORD sectors;
|
||||
DWORD bytes;
|
||||
DWORD total;
|
||||
lstrcpyW(list->Drives[list->dwDriveCount].lpzName,ptr);
|
||||
GetDiskFreeSpaceW(ptr,§ors,&bytes,&clusters,&total);
|
||||
list->Drives[list->dwDriveCount].dwFreeSpace = clusters * sectors *
|
||||
bytes;
|
||||
list->Drives[list->dwDriveCount].dwWantedSpace = 0;
|
||||
list->dwDriveCount++;
|
||||
}
|
||||
len = lstrlenW(ptr);
|
||||
len++;
|
||||
ptr+=sizeof(WCHAR)*len;
|
||||
}
|
||||
return (HANDLE)list;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupCreateDiskSpaceListA (SETUPAPI.@)
|
||||
*/
|
||||
HDSKSPC WINAPI SetupCreateDiskSpaceListA(PVOID Reserved1, DWORD Reserved2, UINT Flags)
|
||||
{
|
||||
return SetupCreateDiskSpaceListW( Reserved1, Reserved2, Flags );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupAddInstallSectionToDiskSpaceListA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC DiskSpace,
|
||||
HINF InfHandle, HINF LayoutInfHandle,
|
||||
LPSTR SectionName, PVOID Reserved1, UINT Reserved2)
|
||||
{
|
||||
FIXME ("Stub\n");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupQuerySpaceRequiredOnDriveA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupQuerySpaceRequiredOnDriveA(HDSKSPC DiskSpace,
|
||||
LPSTR DriveSpec, LONGLONG* SpaceRequired,
|
||||
PVOID Reserved1, UINT Reserved2)
|
||||
{
|
||||
WCHAR driveW[20];
|
||||
unsigned int i;
|
||||
LPDISKSPACELIST list = (LPDISKSPACELIST)DiskSpace;
|
||||
BOOL rc = FALSE;
|
||||
static const WCHAR bkslsh[]= {'\\',0};
|
||||
|
||||
MultiByteToWideChar(CP_ACP,0,DriveSpec,-1,driveW,20);
|
||||
|
||||
lstrcatW(driveW,bkslsh);
|
||||
|
||||
TRACE("Looking for drive %s\n",debugstr_w(driveW));
|
||||
|
||||
for (i = 0; i < list->dwDriveCount; i++)
|
||||
{
|
||||
TRACE("checking drive %s\n",debugstr_w(list->Drives[i].lpzName));
|
||||
if (lstrcmpW(driveW,list->Drives[i].lpzName)==0)
|
||||
{
|
||||
rc = TRUE;
|
||||
*SpaceRequired = list->Drives[i].dwWantedSpace;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDestroyDiskSpaceList (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupDestroyDiskSpaceList(HDSKSPC DiskSpace)
|
||||
{
|
||||
LPDISKSPACELIST list = (LPDISKSPACELIST)DiskSpace;
|
||||
HeapFree(GetProcessHeap(),0,list);
|
||||
return TRUE;
|
||||
}
|
||||
/*
|
||||
* SetupAPI DiskSpace functions
|
||||
*
|
||||
* Copyright 2004 CodeWeavers (Aric Stewart)
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "winreg.h"
|
||||
#include "setupapi.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
typedef struct {
|
||||
WCHAR lpzName[20];
|
||||
LONGLONG dwFreeSpace;
|
||||
LONGLONG dwWantedSpace;
|
||||
} DRIVE_ENTRY, *LPDRIVE_ENTRY;
|
||||
|
||||
typedef struct {
|
||||
DWORD dwDriveCount;
|
||||
DRIVE_ENTRY Drives[26];
|
||||
} DISKSPACELIST, *LPDISKSPACELIST;
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupCreateDiskSpaceListW (SETUPAPI.@)
|
||||
*/
|
||||
HDSKSPC WINAPI SetupCreateDiskSpaceListW(PVOID Reserved1, DWORD Reserved2, UINT Flags)
|
||||
{
|
||||
WCHAR drives[255];
|
||||
DWORD rc;
|
||||
WCHAR *ptr;
|
||||
LPDISKSPACELIST list=NULL;
|
||||
|
||||
rc = GetLogicalDriveStringsW(255,drives);
|
||||
|
||||
if (rc == 0)
|
||||
return NULL;
|
||||
|
||||
list = HeapAlloc(GetProcessHeap(),0,sizeof(DISKSPACELIST));
|
||||
|
||||
list->dwDriveCount = 0;
|
||||
|
||||
ptr = drives;
|
||||
|
||||
while (*ptr)
|
||||
{
|
||||
DWORD type = GetDriveTypeW(ptr);
|
||||
DWORD len;
|
||||
if (type == DRIVE_FIXED)
|
||||
{
|
||||
DWORD clusters;
|
||||
DWORD sectors;
|
||||
DWORD bytes;
|
||||
DWORD total;
|
||||
lstrcpyW(list->Drives[list->dwDriveCount].lpzName,ptr);
|
||||
GetDiskFreeSpaceW(ptr,§ors,&bytes,&clusters,&total);
|
||||
list->Drives[list->dwDriveCount].dwFreeSpace = clusters * sectors *
|
||||
bytes;
|
||||
list->Drives[list->dwDriveCount].dwWantedSpace = 0;
|
||||
list->dwDriveCount++;
|
||||
}
|
||||
len = lstrlenW(ptr);
|
||||
len++;
|
||||
ptr+=sizeof(WCHAR)*len;
|
||||
}
|
||||
return (HANDLE)list;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupCreateDiskSpaceListA (SETUPAPI.@)
|
||||
*/
|
||||
HDSKSPC WINAPI SetupCreateDiskSpaceListA(PVOID Reserved1, DWORD Reserved2, UINT Flags)
|
||||
{
|
||||
return SetupCreateDiskSpaceListW( Reserved1, Reserved2, Flags );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupAddInstallSectionToDiskSpaceListA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC DiskSpace,
|
||||
HINF InfHandle, HINF LayoutInfHandle,
|
||||
LPSTR SectionName, PVOID Reserved1, UINT Reserved2)
|
||||
{
|
||||
FIXME ("Stub\n");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupQuerySpaceRequiredOnDriveA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupQuerySpaceRequiredOnDriveA(HDSKSPC DiskSpace,
|
||||
LPSTR DriveSpec, LONGLONG* SpaceRequired,
|
||||
PVOID Reserved1, UINT Reserved2)
|
||||
{
|
||||
WCHAR driveW[20];
|
||||
unsigned int i;
|
||||
LPDISKSPACELIST list = (LPDISKSPACELIST)DiskSpace;
|
||||
BOOL rc = FALSE;
|
||||
static const WCHAR bkslsh[]= {'\\',0};
|
||||
|
||||
MultiByteToWideChar(CP_ACP,0,DriveSpec,-1,driveW,20);
|
||||
|
||||
lstrcatW(driveW,bkslsh);
|
||||
|
||||
TRACE("Looking for drive %s\n",debugstr_w(driveW));
|
||||
|
||||
for (i = 0; i < list->dwDriveCount; i++)
|
||||
{
|
||||
TRACE("checking drive %s\n",debugstr_w(list->Drives[i].lpzName));
|
||||
if (lstrcmpW(driveW,list->Drives[i].lpzName)==0)
|
||||
{
|
||||
rc = TRUE;
|
||||
*SpaceRequired = list->Drives[i].dwWantedSpace;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDestroyDiskSpaceList (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupDestroyDiskSpaceList(HDSKSPC DiskSpace)
|
||||
{
|
||||
LPDISKSPACELIST list = (LPDISKSPACELIST)DiskSpace;
|
||||
HeapFree(GetProcessHeap(),0,list);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+198
-198
@@ -1,198 +1,198 @@
|
||||
/*
|
||||
* SetupX .inf file parsing functions
|
||||
*
|
||||
* Copyright 2000 Andreas Mohr for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* FIXME:
|
||||
* - return values ???
|
||||
* - this should be reimplemented at some point to have its own
|
||||
* file parsing instead of using profile functions,
|
||||
* as some SETUPX exports probably demand that
|
||||
* (IpSaveRestorePosition, IpFindNextMatchLine, ...).
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winreg.h"
|
||||
#include "winternl.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "setupapi.h"
|
||||
#include "setupx16.h"
|
||||
#include "setupapi_private.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
#define MAX_HANDLES 16384
|
||||
#define FIRST_HANDLE 32
|
||||
|
||||
static HINF handles[MAX_HANDLES];
|
||||
|
||||
|
||||
static RETERR16 alloc_hinf16( HINF hinf, HINF16 *hinf16 )
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < MAX_HANDLES; i++)
|
||||
{
|
||||
if (!handles[i])
|
||||
{
|
||||
handles[i] = hinf;
|
||||
*hinf16 = i + FIRST_HANDLE;
|
||||
return OK;
|
||||
}
|
||||
}
|
||||
return ERR_IP_OUT_OF_HANDLES;
|
||||
}
|
||||
|
||||
static HINF get_hinf( HINF16 hinf16 )
|
||||
{
|
||||
int idx = hinf16 - FIRST_HANDLE;
|
||||
if (idx < 0 || idx >= MAX_HANDLES) return 0;
|
||||
return handles[idx];
|
||||
}
|
||||
|
||||
|
||||
static HINF free_hinf16( HINF16 hinf16 )
|
||||
{
|
||||
HINF ret;
|
||||
int idx = hinf16 - FIRST_HANDLE;
|
||||
|
||||
if (idx < 0 || idx >= MAX_HANDLES) return 0;
|
||||
ret = handles[idx];
|
||||
handles[idx] = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* convert last error code to a RETERR16 value */
|
||||
static RETERR16 get_last_error(void)
|
||||
{
|
||||
switch(GetLastError())
|
||||
{
|
||||
case ERROR_EXPECTED_SECTION_NAME:
|
||||
case ERROR_BAD_SECTION_NAME_LINE:
|
||||
case ERROR_SECTION_NAME_TOO_LONG: return ERR_IP_INVALID_SECT_NAME;
|
||||
case ERROR_SECTION_NOT_FOUND: return ERR_IP_SECT_NOT_FOUND;
|
||||
case ERROR_LINE_NOT_FOUND: return ERR_IP_LINE_NOT_FOUND;
|
||||
default: return IP_ERROR; /* FIXME */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* IpOpen (SETUPX.2)
|
||||
*
|
||||
*/
|
||||
RETERR16 WINAPI IpOpen16( LPCSTR filename, HINF16 *hinf16 )
|
||||
{
|
||||
HINF hinf = SetupOpenInfFileA( filename, NULL, INF_STYLE_WIN4, NULL );
|
||||
if (hinf == (HINF)INVALID_HANDLE_VALUE) return get_last_error();
|
||||
return alloc_hinf16( hinf, hinf16 );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* IpClose (SETUPX.4)
|
||||
*/
|
||||
RETERR16 WINAPI IpClose16( HINF16 hinf16 )
|
||||
{
|
||||
HINF hinf = free_hinf16( hinf16 );
|
||||
if (!hinf) return ERR_IP_INVALID_HINF;
|
||||
SetupCloseInfFile( hinf );
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* IpGetProfileString (SETUPX.210)
|
||||
*/
|
||||
RETERR16 WINAPI IpGetProfileString16( HINF16 hinf16, LPCSTR section, LPCSTR entry,
|
||||
LPSTR buffer, WORD buflen )
|
||||
{
|
||||
DWORD required_size;
|
||||
HINF hinf = get_hinf( hinf16 );
|
||||
|
||||
if (!hinf) return ERR_IP_INVALID_HINF;
|
||||
if (!SetupGetLineTextA( NULL, hinf, section, entry, buffer, buflen, &required_size ))
|
||||
return get_last_error();
|
||||
TRACE("%p: section %s entry %s ret %s\n",
|
||||
hinf, debugstr_a(section), debugstr_a(entry), debugstr_a(buffer) );
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* GenFormStrWithoutPlaceHolders (SETUPX.103)
|
||||
*
|
||||
* ought to be pretty much implemented, I guess...
|
||||
*/
|
||||
void WINAPI GenFormStrWithoutPlaceHolders16( LPSTR dst, LPCSTR src, HINF16 hinf16 )
|
||||
{
|
||||
UNICODE_STRING srcW;
|
||||
HINF hinf = get_hinf( hinf16 );
|
||||
|
||||
if (!hinf) return;
|
||||
|
||||
if (!RtlCreateUnicodeStringFromAsciiz( &srcW, src )) return;
|
||||
PARSER_string_substA( hinf, srcW.Buffer, dst, MAX_INF_STRING_LENGTH );
|
||||
RtlFreeUnicodeString( &srcW );
|
||||
TRACE( "%s -> %s\n", debugstr_a(src), debugstr_a(dst) );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* GenInstall (SETUPX.101)
|
||||
*
|
||||
* generic installer function for .INF file sections
|
||||
*
|
||||
* This is not perfect - patch whenever you can !
|
||||
*
|
||||
* wFlags == GENINSTALL_DO_xxx
|
||||
* e.g. NetMeeting:
|
||||
* first call GENINSTALL_DO_REGSRCPATH | GENINSTALL_DO_FILES,
|
||||
* second call GENINSTALL_DO_LOGCONFIG | CFGAUTO | INI2REG | REG | INI
|
||||
*/
|
||||
RETERR16 WINAPI GenInstall16( HINF16 hinf16, LPCSTR section, WORD genflags )
|
||||
{
|
||||
UINT flags = 0;
|
||||
HINF hinf = get_hinf( hinf16 );
|
||||
RETERR16 ret = OK;
|
||||
void *context;
|
||||
|
||||
if (!hinf) return ERR_IP_INVALID_HINF;
|
||||
|
||||
if (genflags & GENINSTALL_DO_FILES) flags |= SPINST_FILES;
|
||||
if (genflags & GENINSTALL_DO_INI) flags |= SPINST_INIFILES;
|
||||
if (genflags & GENINSTALL_DO_REG) flags |= SPINST_REGISTRY;
|
||||
if (genflags & GENINSTALL_DO_INI2REG) flags |= SPINST_INI2REG;
|
||||
if (genflags & GENINSTALL_DO_LOGCONFIG) flags |= SPINST_LOGCONFIG;
|
||||
if (genflags & GENINSTALL_DO_REGSRCPATH) FIXME( "unsupported flag: GENINSTALL_DO_REGSRCPATH\n" );
|
||||
if (genflags & GENINSTALL_DO_CFGAUTO) FIXME( "unsupported flag: GENINSTALL_DO_CFGAUTO\n" );
|
||||
if (genflags & GENINSTALL_DO_PERUSER) FIXME( "unsupported flag: GENINSTALL_DO_PERUSER\n" );
|
||||
|
||||
context = SetupInitDefaultQueueCallback( 0 );
|
||||
if (!SetupInstallFromInfSectionA( 0, hinf, section, flags, 0, NULL,
|
||||
SP_COPY_NEWER_OR_SAME, SetupDefaultQueueCallbackA,
|
||||
context, 0, 0 ))
|
||||
ret = get_last_error();
|
||||
|
||||
SetupTermDefaultQueueCallback( context );
|
||||
return ret;
|
||||
}
|
||||
/*
|
||||
* SetupX .inf file parsing functions
|
||||
*
|
||||
* Copyright 2000 Andreas Mohr for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* FIXME:
|
||||
* - return values ???
|
||||
* - this should be reimplemented at some point to have its own
|
||||
* file parsing instead of using profile functions,
|
||||
* as some SETUPX exports probably demand that
|
||||
* (IpSaveRestorePosition, IpFindNextMatchLine, ...).
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winreg.h"
|
||||
#include "winternl.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "setupapi.h"
|
||||
#include "setupx16.h"
|
||||
#include "setupapi_private.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
#define MAX_HANDLES 16384
|
||||
#define FIRST_HANDLE 32
|
||||
|
||||
static HINF handles[MAX_HANDLES];
|
||||
|
||||
|
||||
static RETERR16 alloc_hinf16( HINF hinf, HINF16 *hinf16 )
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < MAX_HANDLES; i++)
|
||||
{
|
||||
if (!handles[i])
|
||||
{
|
||||
handles[i] = hinf;
|
||||
*hinf16 = i + FIRST_HANDLE;
|
||||
return OK;
|
||||
}
|
||||
}
|
||||
return ERR_IP_OUT_OF_HANDLES;
|
||||
}
|
||||
|
||||
static HINF get_hinf( HINF16 hinf16 )
|
||||
{
|
||||
int idx = hinf16 - FIRST_HANDLE;
|
||||
if (idx < 0 || idx >= MAX_HANDLES) return 0;
|
||||
return handles[idx];
|
||||
}
|
||||
|
||||
|
||||
static HINF free_hinf16( HINF16 hinf16 )
|
||||
{
|
||||
HINF ret;
|
||||
int idx = hinf16 - FIRST_HANDLE;
|
||||
|
||||
if (idx < 0 || idx >= MAX_HANDLES) return 0;
|
||||
ret = handles[idx];
|
||||
handles[idx] = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* convert last error code to a RETERR16 value */
|
||||
static RETERR16 get_last_error(void)
|
||||
{
|
||||
switch(GetLastError())
|
||||
{
|
||||
case ERROR_EXPECTED_SECTION_NAME:
|
||||
case ERROR_BAD_SECTION_NAME_LINE:
|
||||
case ERROR_SECTION_NAME_TOO_LONG: return ERR_IP_INVALID_SECT_NAME;
|
||||
case ERROR_SECTION_NOT_FOUND: return ERR_IP_SECT_NOT_FOUND;
|
||||
case ERROR_LINE_NOT_FOUND: return ERR_IP_LINE_NOT_FOUND;
|
||||
default: return IP_ERROR; /* FIXME */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* IpOpen (SETUPX.2)
|
||||
*
|
||||
*/
|
||||
RETERR16 WINAPI IpOpen16( LPCSTR filename, HINF16 *hinf16 )
|
||||
{
|
||||
HINF hinf = SetupOpenInfFileA( filename, NULL, INF_STYLE_WIN4, NULL );
|
||||
if (hinf == (HINF)INVALID_HANDLE_VALUE) return get_last_error();
|
||||
return alloc_hinf16( hinf, hinf16 );
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* IpClose (SETUPX.4)
|
||||
*/
|
||||
RETERR16 WINAPI IpClose16( HINF16 hinf16 )
|
||||
{
|
||||
HINF hinf = free_hinf16( hinf16 );
|
||||
if (!hinf) return ERR_IP_INVALID_HINF;
|
||||
SetupCloseInfFile( hinf );
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* IpGetProfileString (SETUPX.210)
|
||||
*/
|
||||
RETERR16 WINAPI IpGetProfileString16( HINF16 hinf16, LPCSTR section, LPCSTR entry,
|
||||
LPSTR buffer, WORD buflen )
|
||||
{
|
||||
DWORD required_size;
|
||||
HINF hinf = get_hinf( hinf16 );
|
||||
|
||||
if (!hinf) return ERR_IP_INVALID_HINF;
|
||||
if (!SetupGetLineTextA( NULL, hinf, section, entry, buffer, buflen, &required_size ))
|
||||
return get_last_error();
|
||||
TRACE("%p: section %s entry %s ret %s\n",
|
||||
hinf, debugstr_a(section), debugstr_a(entry), debugstr_a(buffer) );
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* GenFormStrWithoutPlaceHolders (SETUPX.103)
|
||||
*
|
||||
* ought to be pretty much implemented, I guess...
|
||||
*/
|
||||
void WINAPI GenFormStrWithoutPlaceHolders16( LPSTR dst, LPCSTR src, HINF16 hinf16 )
|
||||
{
|
||||
UNICODE_STRING srcW;
|
||||
HINF hinf = get_hinf( hinf16 );
|
||||
|
||||
if (!hinf) return;
|
||||
|
||||
if (!RtlCreateUnicodeStringFromAsciiz( &srcW, src )) return;
|
||||
PARSER_string_substA( hinf, srcW.Buffer, dst, MAX_INF_STRING_LENGTH );
|
||||
RtlFreeUnicodeString( &srcW );
|
||||
TRACE( "%s -> %s\n", debugstr_a(src), debugstr_a(dst) );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* GenInstall (SETUPX.101)
|
||||
*
|
||||
* generic installer function for .INF file sections
|
||||
*
|
||||
* This is not perfect - patch whenever you can !
|
||||
*
|
||||
* wFlags == GENINSTALL_DO_xxx
|
||||
* e.g. NetMeeting:
|
||||
* first call GENINSTALL_DO_REGSRCPATH | GENINSTALL_DO_FILES,
|
||||
* second call GENINSTALL_DO_LOGCONFIG | CFGAUTO | INI2REG | REG | INI
|
||||
*/
|
||||
RETERR16 WINAPI GenInstall16( HINF16 hinf16, LPCSTR section, WORD genflags )
|
||||
{
|
||||
UINT flags = 0;
|
||||
HINF hinf = get_hinf( hinf16 );
|
||||
RETERR16 ret = OK;
|
||||
void *context;
|
||||
|
||||
if (!hinf) return ERR_IP_INVALID_HINF;
|
||||
|
||||
if (genflags & GENINSTALL_DO_FILES) flags |= SPINST_FILES;
|
||||
if (genflags & GENINSTALL_DO_INI) flags |= SPINST_INIFILES;
|
||||
if (genflags & GENINSTALL_DO_REG) flags |= SPINST_REGISTRY;
|
||||
if (genflags & GENINSTALL_DO_INI2REG) flags |= SPINST_INI2REG;
|
||||
if (genflags & GENINSTALL_DO_LOGCONFIG) flags |= SPINST_LOGCONFIG;
|
||||
if (genflags & GENINSTALL_DO_REGSRCPATH) FIXME( "unsupported flag: GENINSTALL_DO_REGSRCPATH\n" );
|
||||
if (genflags & GENINSTALL_DO_CFGAUTO) FIXME( "unsupported flag: GENINSTALL_DO_CFGAUTO\n" );
|
||||
if (genflags & GENINSTALL_DO_PERUSER) FIXME( "unsupported flag: GENINSTALL_DO_PERUSER\n" );
|
||||
|
||||
context = SetupInitDefaultQueueCallback( 0 );
|
||||
if (!SetupInstallFromInfSectionA( 0, hinf, section, flags, 0, NULL,
|
||||
SP_COPY_NEWER_OR_SAME, SetupDefaultQueueCallbackA,
|
||||
context, 0, 0 ))
|
||||
ret = get_last_error();
|
||||
|
||||
SetupTermDefaultQueueCallback( context );
|
||||
return ret;
|
||||
}
|
||||
|
||||
+955
-955
File diff suppressed because it is too large
Load Diff
+1046
-1046
File diff suppressed because it is too large
Load Diff
+1839
-1839
File diff suppressed because it is too large
Load Diff
+1427
-1427
File diff suppressed because it is too large
Load Diff
+82
-82
@@ -1,82 +1,82 @@
|
||||
/* rpc.c */
|
||||
|
||||
#include <windows.h>
|
||||
#include <rpc.h>
|
||||
#include <rpcdce.h>
|
||||
|
||||
|
||||
static RPC_BINDING_HANDLE LocalBindingHandle = NULL;
|
||||
|
||||
|
||||
RPC_STATUS
|
||||
PnpBindRpc(LPWSTR pszMachine,
|
||||
RPC_BINDING_HANDLE* BindingHandle)
|
||||
{
|
||||
PWSTR pszStringBinding = NULL;
|
||||
RPC_STATUS Status;
|
||||
|
||||
Status = RpcStringBindingComposeW(NULL,
|
||||
L"ncacn_np",
|
||||
pszMachine,
|
||||
L"\\pipe\\umpnpmgr",
|
||||
NULL,
|
||||
&pszStringBinding);
|
||||
if (Status != RPC_S_OK)
|
||||
return Status;
|
||||
|
||||
Status = RpcBindingFromStringBindingW(pszStringBinding,
|
||||
BindingHandle);
|
||||
|
||||
RpcStringFreeW(&pszStringBinding);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
RPC_STATUS
|
||||
PnpUnbindRpc(RPC_BINDING_HANDLE *BindingHandle)
|
||||
{
|
||||
if (BindingHandle != NULL)
|
||||
{
|
||||
RpcBindingFree(*BindingHandle);
|
||||
*BindingHandle = NULL;
|
||||
}
|
||||
|
||||
return RPC_S_OK;
|
||||
}
|
||||
|
||||
|
||||
RPC_STATUS
|
||||
PnpGetLocalBindingHandle(RPC_BINDING_HANDLE *BindingHandle)
|
||||
{
|
||||
if (LocalBindingHandle != NULL)
|
||||
{
|
||||
BindingHandle = LocalBindingHandle;
|
||||
return RPC_S_OK;
|
||||
}
|
||||
|
||||
return PnpBindRpc(NULL, BindingHandle);
|
||||
}
|
||||
|
||||
|
||||
RPC_STATUS
|
||||
PnpUnbindLocalBindingHandle(VOID)
|
||||
{
|
||||
return PnpUnbindRpc(&LocalBindingHandle);
|
||||
}
|
||||
|
||||
|
||||
void __RPC_FAR * __RPC_USER
|
||||
midl_user_allocate(size_t len)
|
||||
{
|
||||
return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
|
||||
}
|
||||
|
||||
|
||||
void __RPC_USER
|
||||
midl_user_free(void __RPC_FAR * ptr)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, ptr);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
/* rpc.c */
|
||||
|
||||
#include <windows.h>
|
||||
#include <rpc.h>
|
||||
#include <rpcdce.h>
|
||||
|
||||
|
||||
static RPC_BINDING_HANDLE LocalBindingHandle = NULL;
|
||||
|
||||
|
||||
RPC_STATUS
|
||||
PnpBindRpc(LPWSTR pszMachine,
|
||||
RPC_BINDING_HANDLE* BindingHandle)
|
||||
{
|
||||
PWSTR pszStringBinding = NULL;
|
||||
RPC_STATUS Status;
|
||||
|
||||
Status = RpcStringBindingComposeW(NULL,
|
||||
L"ncacn_np",
|
||||
pszMachine,
|
||||
L"\\pipe\\umpnpmgr",
|
||||
NULL,
|
||||
&pszStringBinding);
|
||||
if (Status != RPC_S_OK)
|
||||
return Status;
|
||||
|
||||
Status = RpcBindingFromStringBindingW(pszStringBinding,
|
||||
BindingHandle);
|
||||
|
||||
RpcStringFreeW(&pszStringBinding);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
RPC_STATUS
|
||||
PnpUnbindRpc(RPC_BINDING_HANDLE *BindingHandle)
|
||||
{
|
||||
if (BindingHandle != NULL)
|
||||
{
|
||||
RpcBindingFree(*BindingHandle);
|
||||
*BindingHandle = NULL;
|
||||
}
|
||||
|
||||
return RPC_S_OK;
|
||||
}
|
||||
|
||||
|
||||
RPC_STATUS
|
||||
PnpGetLocalBindingHandle(RPC_BINDING_HANDLE *BindingHandle)
|
||||
{
|
||||
if (LocalBindingHandle != NULL)
|
||||
{
|
||||
BindingHandle = LocalBindingHandle;
|
||||
return RPC_S_OK;
|
||||
}
|
||||
|
||||
return PnpBindRpc(NULL, BindingHandle);
|
||||
}
|
||||
|
||||
|
||||
RPC_STATUS
|
||||
PnpUnbindLocalBindingHandle(VOID)
|
||||
{
|
||||
return PnpUnbindRpc(&LocalBindingHandle);
|
||||
}
|
||||
|
||||
|
||||
void __RPC_FAR * __RPC_USER
|
||||
midl_user_allocate(size_t len)
|
||||
{
|
||||
return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
|
||||
}
|
||||
|
||||
|
||||
void __RPC_USER
|
||||
midl_user_free(void __RPC_FAR * ptr)
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, ptr);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
/*
|
||||
* Top level resource file for SETUPX
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "setupapi_private.h"
|
||||
|
||||
#include "Cs.rc"
|
||||
#include "Da.rc"
|
||||
#include "De.rc"
|
||||
#include "En.rc"
|
||||
#include "Es.rc"
|
||||
#include "Fr.rc"
|
||||
#include "It.rc"
|
||||
#include "Ja.rc"
|
||||
#include "Nl.rc"
|
||||
#include "Pt.rc"
|
||||
#include "Ru.rc"
|
||||
#include "Sv.rc"
|
||||
/*
|
||||
* Top level resource file for SETUPX
|
||||
*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "setupapi_private.h"
|
||||
|
||||
#include "Cs.rc"
|
||||
#include "Da.rc"
|
||||
#include "De.rc"
|
||||
#include "En.rc"
|
||||
#include "Es.rc"
|
||||
#include "Fr.rc"
|
||||
#include "It.rc"
|
||||
#include "Ja.rc"
|
||||
#include "Nl.rc"
|
||||
#include "Pt.rc"
|
||||
#include "Ru.rc"
|
||||
#include "Sv.rc"
|
||||
|
||||
+553
-553
File diff suppressed because it is too large
Load Diff
@@ -1,37 +1,37 @@
|
||||
<module name="setupapi" type="win32dll" baseaddress="${BASEADDRESS_SETUPAPI}" installbase="system32" installname="setupapi.dll" warnings="true">
|
||||
<importlibrary definition="setupapi.spec.def" />
|
||||
<include base="setupapi">.</include>
|
||||
<include base="ReactOS">include/wine</include>
|
||||
<include base="pnp_client">.</include>
|
||||
<define name="UNICODE" />
|
||||
<define name="_UNICODE" />
|
||||
<define name="__REACTOS__" />
|
||||
<define name="__USE_W32API" />
|
||||
<define name="_WIN32_IE">0x600</define>
|
||||
<define name="_WIN32_WINNT">0x501</define>
|
||||
<define name="WINVER">0x501</define>
|
||||
<define name="__WINESRC__" />
|
||||
<define name="_SETUPAPI_" />
|
||||
<library>pnp_client</library>
|
||||
<library>wine</library>
|
||||
<library>ntdll</library>
|
||||
<library>kernel32</library>
|
||||
<library>advapi32</library>
|
||||
<library>user32</library>
|
||||
<library>rpcrt4</library>
|
||||
<library>version</library>
|
||||
<file>cfgmgr.c</file>
|
||||
<file>devinst.c</file>
|
||||
<file>dirid.c</file>
|
||||
<file>diskspace.c</file>
|
||||
<file>install.c</file>
|
||||
<file>misc.c</file>
|
||||
<file>parser.c</file>
|
||||
<file>queue.c</file>
|
||||
<file>setupcab.c</file>
|
||||
<file>stringtable.c</file>
|
||||
<file>stubs.c</file>
|
||||
<file>rpc.c</file>
|
||||
<file>setupapi.rc</file>
|
||||
<file>setupapi.spec</file>
|
||||
</module>
|
||||
<module name="setupapi" type="win32dll" baseaddress="${BASEADDRESS_SETUPAPI}" installbase="system32" installname="setupapi.dll" warnings="true">
|
||||
<importlibrary definition="setupapi.spec.def" />
|
||||
<include base="setupapi">.</include>
|
||||
<include base="ReactOS">include/wine</include>
|
||||
<include base="pnp_client">.</include>
|
||||
<define name="UNICODE" />
|
||||
<define name="_UNICODE" />
|
||||
<define name="__REACTOS__" />
|
||||
<define name="__USE_W32API" />
|
||||
<define name="_WIN32_IE">0x600</define>
|
||||
<define name="_WIN32_WINNT">0x501</define>
|
||||
<define name="WINVER">0x501</define>
|
||||
<define name="__WINESRC__" />
|
||||
<define name="_SETUPAPI_" />
|
||||
<library>pnp_client</library>
|
||||
<library>wine</library>
|
||||
<library>ntdll</library>
|
||||
<library>kernel32</library>
|
||||
<library>advapi32</library>
|
||||
<library>user32</library>
|
||||
<library>rpcrt4</library>
|
||||
<library>version</library>
|
||||
<file>cfgmgr.c</file>
|
||||
<file>devinst.c</file>
|
||||
<file>dirid.c</file>
|
||||
<file>diskspace.c</file>
|
||||
<file>install.c</file>
|
||||
<file>misc.c</file>
|
||||
<file>parser.c</file>
|
||||
<file>queue.c</file>
|
||||
<file>setupcab.c</file>
|
||||
<file>stringtable.c</file>
|
||||
<file>stubs.c</file>
|
||||
<file>rpc.c</file>
|
||||
<file>setupapi.rc</file>
|
||||
<file>setupapi.spec</file>
|
||||
</module>
|
||||
|
||||
@@ -1,62 +1,62 @@
|
||||
/*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __SETUPAPI_PRIVATE_H
|
||||
#define __SETUPAPI_PRIVATE_H
|
||||
|
||||
#define COPYFILEDLGORD 1000
|
||||
#define SOURCESTRORD 500
|
||||
#define DESTSTRORD 501
|
||||
#define PROGRESSORD 502
|
||||
|
||||
|
||||
#define REG_INSTALLEDFILES "System\\CurrentControlSet\\Control\\InstalledFiles"
|
||||
#define REGPART_RENAME "\\Rename"
|
||||
#define REG_VERSIONCONFLICT "Software\\Microsoft\\VersionConflictManager"
|
||||
|
||||
/* string substitutions */
|
||||
|
||||
struct inf_file;
|
||||
extern const WCHAR *DIRID_get_string( HINF hinf, int dirid );
|
||||
extern unsigned int PARSER_string_substA( struct inf_file *file, const WCHAR *text,
|
||||
char *buffer, unsigned int size );
|
||||
extern unsigned int PARSER_string_substW( struct inf_file *file, const WCHAR *text,
|
||||
WCHAR *buffer, unsigned int size );
|
||||
extern const WCHAR *PARSER_get_src_root( HINF hinf );
|
||||
extern WCHAR *PARSER_get_dest_dir( INFCONTEXT *context );
|
||||
|
||||
/* support for Ascii queue callback functions */
|
||||
|
||||
struct callback_WtoA_context
|
||||
{
|
||||
void *orig_context;
|
||||
PSP_FILE_CALLBACK_A orig_handler;
|
||||
};
|
||||
|
||||
UINT CALLBACK QUEUE_callback_WtoA( void *context, UINT notification, UINT_PTR, UINT_PTR );
|
||||
|
||||
/* from msvcrt/sys/stat.h */
|
||||
#define _S_IWRITE 0x0080
|
||||
#define _S_IREAD 0x0100
|
||||
|
||||
extern HINSTANCE hInstance;
|
||||
extern OSVERSIONINFOW OsVersionInfo;
|
||||
|
||||
DWORD WINAPI CaptureAndConvertAnsiArg(LPCSTR pSrc, LPWSTR *pDst);
|
||||
|
||||
#endif /* __SETUPAPI_PRIVATE_H */
|
||||
/*
|
||||
* Copyright 2001 Andreas Mohr
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __SETUPAPI_PRIVATE_H
|
||||
#define __SETUPAPI_PRIVATE_H
|
||||
|
||||
#define COPYFILEDLGORD 1000
|
||||
#define SOURCESTRORD 500
|
||||
#define DESTSTRORD 501
|
||||
#define PROGRESSORD 502
|
||||
|
||||
|
||||
#define REG_INSTALLEDFILES "System\\CurrentControlSet\\Control\\InstalledFiles"
|
||||
#define REGPART_RENAME "\\Rename"
|
||||
#define REG_VERSIONCONFLICT "Software\\Microsoft\\VersionConflictManager"
|
||||
|
||||
/* string substitutions */
|
||||
|
||||
struct inf_file;
|
||||
extern const WCHAR *DIRID_get_string( HINF hinf, int dirid );
|
||||
extern unsigned int PARSER_string_substA( struct inf_file *file, const WCHAR *text,
|
||||
char *buffer, unsigned int size );
|
||||
extern unsigned int PARSER_string_substW( struct inf_file *file, const WCHAR *text,
|
||||
WCHAR *buffer, unsigned int size );
|
||||
extern const WCHAR *PARSER_get_src_root( HINF hinf );
|
||||
extern WCHAR *PARSER_get_dest_dir( INFCONTEXT *context );
|
||||
|
||||
/* support for Ascii queue callback functions */
|
||||
|
||||
struct callback_WtoA_context
|
||||
{
|
||||
void *orig_context;
|
||||
PSP_FILE_CALLBACK_A orig_handler;
|
||||
};
|
||||
|
||||
UINT CALLBACK QUEUE_callback_WtoA( void *context, UINT notification, UINT_PTR, UINT_PTR );
|
||||
|
||||
/* from msvcrt/sys/stat.h */
|
||||
#define _S_IWRITE 0x0080
|
||||
#define _S_IREAD 0x0100
|
||||
|
||||
extern HINSTANCE hInstance;
|
||||
extern OSVERSIONINFOW OsVersionInfo;
|
||||
|
||||
DWORD WINAPI CaptureAndConvertAnsiArg(LPCSTR pSrc, LPWSTR *pDst);
|
||||
|
||||
#endif /* __SETUPAPI_PRIVATE_H */
|
||||
|
||||
+689
-689
File diff suppressed because it is too large
Load Diff
+269
-269
@@ -1,269 +1,269 @@
|
||||
#1 stub WEP
|
||||
2 pascal -ret16 IpOpen(str ptr) IpOpen16
|
||||
3 stub IpOpenAppend #(str word)
|
||||
4 pascal -ret16 IpClose(word) IpClose16
|
||||
5 stub IpGetLongField #(word ptr word ptr)
|
||||
6 stub IpGetStringField #(word ptr word ptr word ptr)
|
||||
7 stub IpFindFirstLine #(word str str ptr)
|
||||
8 stub IpGetLineCount #(word str ptr)
|
||||
9 stub IpGetFieldCount #(word ptr ptr)
|
||||
10 stub IpGetIntField #(word ptr word ptr)
|
||||
11 stub IpFindNextLine #(word ptr)
|
||||
12 stub IpGetFileName #(word ptr word)
|
||||
13 pascal -ret16 VcpQueueCopy(str str str str word word ptr word long) VcpQueueCopy16
|
||||
14 stub NOAUTORUNWNDPROC
|
||||
15 stub __DEBUGMSG
|
||||
16 stub __ASSERTMSG
|
||||
17 pascal -ret16 VcpQueueDelete(str str word long) VcpQueueDelete16
|
||||
18 stub TpOpenFile #(str ptr word)
|
||||
19 stub TpCloseFile #(word)
|
||||
20 stub TpOpenSection #(word ptr str word)
|
||||
21 stub TpCloseSection #(word)
|
||||
22 stub TpCommitSection #(word word str word)
|
||||
23 stub TpGetLine #(word str str word word ptr)
|
||||
24 stub TpGetNextLine #(word str str ptr)
|
||||
25 stub TpInsertLine #(word str str word word word)
|
||||
26 stub TpReplaceLine #(word str str word word word)
|
||||
27 stub TpDeleteLine #(word word word word)
|
||||
28 stub TpMoveLine #(word word word word word word)
|
||||
29 stub TpGetLineContents #(word ptr word ptr word word word)
|
||||
30 stub TpGetPrivateProfileString #(str str str ptr word str)
|
||||
31 stub TpWritePrivateProfileString #(str str str str)
|
||||
32 stub TpGetProfileString #(str str str ptr word)
|
||||
33 pascal -ret16 CtlSetLdd(ptr) CtlSetLdd16
|
||||
34 pascal -ret16 CtlGetLdd(ptr) CtlGetLdd16
|
||||
35 pascal -ret16 CtlFindLdd(ptr) CtlFindLdd16
|
||||
36 pascal -ret16 CtlAddLdd(ptr) CtlAddLdd16
|
||||
37 pascal -ret16 CtlDelLdd(word) CtlDelLdd16
|
||||
38 pascal -ret16 CtlGetLddPath(word ptr) CtlGetLddPath16
|
||||
39 stub SURegCloseKey #(word)
|
||||
40 stub SURegCreateKey #(word)
|
||||
41 stub SURegDeleteKey #(word str)
|
||||
42 stub SURegDeleteValue #(word str)
|
||||
43 stub SURegEnumKey #(word long ptr long)
|
||||
44 stub SURegEnumValue #(word long str ptr ptr ptr ptr ptr)
|
||||
45 stub SURegFlush #()
|
||||
46 stub SURegInit #()
|
||||
47 pascal SURegOpenKey(word str ptr) SURegOpenKey
|
||||
48 stub SURegQueryValue
|
||||
49 stub SURegQueryValue16 #(word str ptr ptr)
|
||||
50 pascal SURegQueryValueEx(long str ptr ptr ptr ptr) SURegQueryValueEx
|
||||
51 stub SURegSetValue
|
||||
52 stub SURegSetValue16 #(word str long ptr long)
|
||||
53 stub SURegSetValueEx #(word str long long ptr long)
|
||||
54 stub SURegSaveKey #(word str ptr)
|
||||
55 stub SURegLoadKey #(word str str)
|
||||
56 stub SURegUnLoadKey #(word str)
|
||||
60 stub DiskInfoFromLdid #(word ptr)
|
||||
61 pascal suErrorToIds(word word) suErrorToIds16
|
||||
62 pascal -ret16 TPWriteProfileString(str str str) TPWriteProfileString16
|
||||
63 stub SURPLSETUP
|
||||
# does SUSTORELDIDPATH set the path of an LDID in the registry ?
|
||||
64 stub SUSTORELDIDPATH
|
||||
65 stub WILDCARDSTRCMPI
|
||||
101 pascal -ret16 GenInstall(word str word) GenInstall16
|
||||
102 stub GenWinInitRename #(str str word)
|
||||
103 pascal GenFormStrWithoutPlaceHolders(str str word) GenFormStrWithoutPlaceHolders16
|
||||
104 stub SETUPX
|
||||
105 stub CfgSetupMerge #(word)
|
||||
106 stub INITDEPENDANTLDIDS
|
||||
107 stub CFGOBJFINDKEYCMD
|
||||
108 stub GenSURegSetValueEx
|
||||
109 stub GENINSTALLWITHQUEUE
|
||||
110 stub GenInstallEx #(word str word word ptr long)
|
||||
111 stub GenCopyLogConfig2Reg #(word word str)
|
||||
112 stub SUGetSetSetupFlags #(ptr word)
|
||||
114 stub CFGPARSELINE # returns array
|
||||
115 stub CFGSETAUTOPROCESS
|
||||
116 stub CFGOBJTOSTR
|
||||
117 stub CFGLNTOOBJ
|
||||
118 stub MATCHCMDEXT
|
||||
119 stub IpFindNextMatchLine #(word str ptr)
|
||||
120 stub P_SETDEFAULTOPTION
|
||||
121 stub CFGCLEANBOOT
|
||||
122 stub CFGMATCHCMDEXT
|
||||
123 stub CFGWASFILEUPDATED
|
||||
124 stub AUTOMATCHCMDEXT
|
||||
125 stub P_VALIDATEOC
|
||||
126 stub GENMAPROOTREGSTR2KEY
|
||||
127 stub P_CDROMOC
|
||||
128 stub P_MEDIAOC
|
||||
129 stub CFGCLEAN1STBOOT
|
||||
130 stub suFormatMessage
|
||||
131 stub suvFormatMessage #(word str str word ptr)
|
||||
132 stub suFormatMessageBox
|
||||
#133 stub suHelp # W98SE conflict !!
|
||||
135 stub suHelp #(word word)
|
||||
#135 stub P_WEBTVOC # W98SE conflict !!
|
||||
136 stub P_WBEMOC
|
||||
137 stub P_THEMESOC
|
||||
138 stub P_IMAGINGOC
|
||||
139 stub P_SCHEMESOC
|
||||
140 stub suVerConflict #(word ptr word ptr)
|
||||
141 stub suVerConflictInit #(word)
|
||||
142 stub suVerConflictTerm #(ptr)
|
||||
# Emergency Boot Disk
|
||||
143 stub suCreateEBD #(word ptr long)
|
||||
144 stub suCopyToEBD
|
||||
145 stub sxIsMSDOS7Running #()
|
||||
150 stub DS_INIT
|
||||
151 stub DS_DESTROY
|
||||
152 stub DS_SSYNCDRIVES
|
||||
153 stub DS_GETDRIVEDATA
|
||||
154 stub DS_ADDSECTION
|
||||
155 stub DS_ENABLESECTION
|
||||
156 stub DS_DISABLESECTION
|
||||
157 stub DS_SETSWAPSIZE
|
||||
158 stub DS_SETREQUIREDPAD
|
||||
159 stub DS_SETAVAILABLEPAD
|
||||
160 stub SXUPDATEDS
|
||||
170 stub SUSETMEM
|
||||
171 stub WriteDMFBootData #(word ptr word)
|
||||
200 pascal VcpOpen(segptr ptr) VcpOpen16
|
||||
201 pascal VcpClose(word str) VcpClose16
|
||||
202 pascal -ret16 vcpDefCallbackProc(ptr word word long long) vcpDefCallbackProc16
|
||||
203 stub vcpEnumFiles #(ptr long)
|
||||
204 pascal -ret16 VcpQueueRename(str str str str word word long) VcpQueueRename16
|
||||
205 pascal -ret16 vsmGetStringName(word ptr word) vsmGetStringName16
|
||||
206 pascal -ret16 vsmStringDelete(word) vsmStringDelete16
|
||||
207 pascal -ret16 vsmStringAdd(str) vsmStringAdd16
|
||||
208 pascal vsmGetStringRawName(word) vsmGetStringRawName16
|
||||
209 stub IpSaveRestorePosition #(word word)
|
||||
210 pascal -ret16 IpGetProfileString(word str str ptr word) IpGetProfileString16
|
||||
211 stub IpOpenEx #(str ptr word)
|
||||
212 stub IpOpenAppendEx #(str word word)
|
||||
213 pascal -ret16 vcpUICallbackProc(ptr word word long long) vcpUICallbackProc16
|
||||
214 stub VcpAddMRUPath #(str)
|
||||
300 pascal -ret16 DiBuildCompatDrvList (ptr) DiBuildCompatDrvList16
|
||||
301 pascal -ret16 DiBuildClassDrvList (ptr) DiBuildClassDrvList16
|
||||
302 stub DiDestroyDriverNodeList #(ptr)
|
||||
303 pascal -ret16 DiCreateDeviceInfo (ptr str long long str str word) DiCreateDeviceInfo16
|
||||
304 pascal -ret16 DiGetClassDevs(ptr str word word) DiGetClassDevs16
|
||||
305 pascal -ret16 DiDestroyDeviceInfoList (ptr) DiDestroyDeviceInfoList16
|
||||
306 stub DiRemoveDevice #(ptr)
|
||||
308 pascal -ret16 DiCallClassInstaller (word ptr) DiCallClassInstaller16
|
||||
309 stub DiCreateDriverNode #(ptr word word word str str str str str str long)
|
||||
310 stub DiDrawMiniIcon
|
||||
311 stub DiGetClassBitmapIndex #(str ptr)
|
||||
312 stub DiSelectDevice #(ptr)
|
||||
313 stub DiInstallDevice #(ptr)
|
||||
314 stub DiLoadClassIcon #(str ptr ptr)
|
||||
315 stub DiAskForOEMDisk #(ptr)
|
||||
316 stub Display_SetMode #(ptr word word word)
|
||||
317 stub Display_ClassInstaller #(word ptr)
|
||||
318 pascal -ret16 DiCreateDevRegKey (ptr ptr word str word) DiCreateDevRegKey16
|
||||
319 pascal -ret16 DiOpenDevRegKey (ptr ptr word) DiOpenDevRegKey16
|
||||
320 stub DiInstallDrvSection #(str str str str long)
|
||||
321 stub DiInstallClass #(str long)
|
||||
322 stub DiOpenClassRegKey #(ptr str)
|
||||
323 stub Display_SetFontSize #(str)
|
||||
324 stub Display_OpenFontSizeKey #(ptr)
|
||||
325 stub DiBuildClassDrvListFromOldInf #(ptr str ptr long)
|
||||
326 stub DiIsThereNeedToCopy #(word long)
|
||||
333 stub DiChangeState #(ptr long long long)
|
||||
334 stub WALKSUBTREE
|
||||
340 stub GetFctn #(word str str ptr ptr)
|
||||
341 stub DiBuildClassInfoList #(ptr)
|
||||
342 stub DiDestroyClassInfoList #(ptr)
|
||||
343 stub DiGetDeviceClassInfo #(ptr ptr)
|
||||
344 pascal -ret16 DiDeleteDevRegKey (ptr word) DiDeleteDevRegKey16
|
||||
350 stub DiSelectOEMDrv #(word ptr)
|
||||
351 stub DiGetINFClass #(str word str long)
|
||||
353 stub DIPICKBESTDRIVER
|
||||
355 stub COPYINFFILE
|
||||
360 stub GenInfLCToDevNode #(word str word word long)
|
||||
361 stub GETDOSMESSAGE
|
||||
362 stub Mouse_ClassInstaller #(word ptr)
|
||||
363 stub sxCompareDosAppVer #(str str)
|
||||
364 stub MONITOR_CLASSINSTALLER
|
||||
365 stub FCEGETRESDESOFFSET
|
||||
366 stub FCEGETALLOCVALUE
|
||||
367 stub FCEADDRESDES
|
||||
368 stub FCEDELETERESDES
|
||||
369 stub FCEINIT
|
||||
370 stub FCEGETRESDES
|
||||
371 stub FCEGETFIRSTVALUE
|
||||
372 stub FCEGETOTHERVALUE
|
||||
373 stub FCEGETVALIDATEVALUE
|
||||
374 stub FCEWRITETHISFORCEDCONFIGNOW
|
||||
375 stub SUCreatePropertySheetPage #(ptr)
|
||||
376 stub SUDestroyPropertySheetPage #(word)
|
||||
377 stub SUPropertySheet #(ptr)
|
||||
380 stub DiReadRegLogConf #(ptr str ptr ptr)
|
||||
381 stub DiReadRegConf #(ptr ptr ptr long)
|
||||
390 stub DiBuildPotentialDuplicatesList #(ptr ptr long ptr ptr)
|
||||
395 stub InitSubstrData #(ptr str)
|
||||
396 stub GetFirstSubstr #(ptr)
|
||||
397 stub GetNextSubstr #(ptr)
|
||||
398 stub INITSUBSTRDATAEX
|
||||
400 stub bIsFileInVMM32 #(str)
|
||||
401 stub DiInstallDriverFiles #(ptr)
|
||||
405 stub DiBuildClassInfoListEx #(ptr long)
|
||||
406 stub DiGetClassDevsEx #(ptr str str word word)
|
||||
407 stub DiCopyRegSubKeyValue #(word str str str)
|
||||
408 stub IPGETDRIVERDATE
|
||||
409 stub IPGETDRIVERVERSION
|
||||
410 stub IpGetVersionString #(str str ptr word str)
|
||||
411 pascal VcpExplain(ptr long) VcpExplain16
|
||||
412 stub DiBuildDriverIndex #(word)
|
||||
413 stub DiAddSingleInfToDrvIdx #(str word word)
|
||||
414 stub FCEGETFLAGS
|
||||
450 stub UiMakeDlgNonBold #(word)
|
||||
451 stub UiDeleteNonBoldFont #(word)
|
||||
500 stub SUEBDPAGE
|
||||
501 stub SUOCPAGE
|
||||
502 stub SXLISTSUBPROC
|
||||
503 stub SXFILLLB
|
||||
504 stub SXOCPAGEDLG
|
||||
506 stub SXOCBATCHSETTINGS
|
||||
507 stub SXOCFIXNEEDS
|
||||
508 pascal -ret16 CtlSetLddPath(word str) CtlSetLddPath16
|
||||
509 stub SXCALLOCPROC
|
||||
510 stub BUILDINFOCS
|
||||
511 stub BUILDREGOCS
|
||||
512 stub DELETEOCS
|
||||
520 stub DiBuildClassDrvInfoList #(ptr)
|
||||
521 stub DiBuildCompatDrvInfoList #(ptr)
|
||||
522 stub DiDestroyDrvInfoList #(ptr)
|
||||
523 stub DiConvertDriverInfoToDriverNode #(ptr ptr)
|
||||
524 stub DISELECTBESTCOMPATDRV
|
||||
525 stub FirstBootMoveToDOSSTART #(str word)
|
||||
526 stub DOSOptEnableCurCfg #(str)
|
||||
527 pascal -ret16 InstallHinfSection(word word str word) InstallHinfSection16
|
||||
528 stub SXMAKEUNCPATH
|
||||
529 stub SXISSBSSERVERFILE
|
||||
530 stub SXFINDBATCHFILES
|
||||
531 stub ISPANEUROPEAN
|
||||
532 stub UPGRADENIGGLINGS
|
||||
533 stub DISPLAY_ISSECONDDISPLAY
|
||||
534 stub ISWINDOWSFILE
|
||||
540 stub VERIFYSELECTEDDRIVER
|
||||
575 stub SXCALLMIGRATIONDLLS
|
||||
576 stub SXCALLMIGRATIONDLLS_RUNDLL
|
||||
600 stub PidConstruct #(str str str word)
|
||||
601 stub PidValidate #(str str)
|
||||
602 stub GETJAPANESEKEYBOARDTYPE
|
||||
610 stub CRC32COMPUTE
|
||||
621 stub SXSAVEINFO
|
||||
622 stub SXADDPAGEEX
|
||||
623 stub OPKREMOVEINSTALLEDNETDEVICE
|
||||
640 stub DOFIRSTRUNSCREENS
|
||||
700 stub SXSHOWREBOOTDLG
|
||||
701 stub SXSHOWREBOOTDLG_RUNDLL
|
||||
750 stub UIPOSITIONDIALOG
|
||||
775 stub ASPICLEAN
|
||||
800 stub EXTRACTCABFILE
|
||||
825 stub PIDGEN3
|
||||
826 stub GETSETUPINFO
|
||||
827 stub SETSETUPINFO
|
||||
828 stub GETKEYBOARDOPTIONS
|
||||
829 stub GETLOCALEOPTIONS
|
||||
830 stub SETINTLOPTIONS
|
||||
831 stub GETPRODUCTTYPE
|
||||
832 stub ISOPKMODE
|
||||
833 stub AUDITONETIMEINSTALL
|
||||
834 stub DISKDUP
|
||||
835 stub OPKPREINSTALL
|
||||
836 stub ISAUDITMODE
|
||||
837 stub ISAUDITAUTO
|
||||
838 stub GETVALIDEULA
|
||||
#1 stub WEP
|
||||
2 pascal -ret16 IpOpen(str ptr) IpOpen16
|
||||
3 stub IpOpenAppend #(str word)
|
||||
4 pascal -ret16 IpClose(word) IpClose16
|
||||
5 stub IpGetLongField #(word ptr word ptr)
|
||||
6 stub IpGetStringField #(word ptr word ptr word ptr)
|
||||
7 stub IpFindFirstLine #(word str str ptr)
|
||||
8 stub IpGetLineCount #(word str ptr)
|
||||
9 stub IpGetFieldCount #(word ptr ptr)
|
||||
10 stub IpGetIntField #(word ptr word ptr)
|
||||
11 stub IpFindNextLine #(word ptr)
|
||||
12 stub IpGetFileName #(word ptr word)
|
||||
13 pascal -ret16 VcpQueueCopy(str str str str word word ptr word long) VcpQueueCopy16
|
||||
14 stub NOAUTORUNWNDPROC
|
||||
15 stub __DEBUGMSG
|
||||
16 stub __ASSERTMSG
|
||||
17 pascal -ret16 VcpQueueDelete(str str word long) VcpQueueDelete16
|
||||
18 stub TpOpenFile #(str ptr word)
|
||||
19 stub TpCloseFile #(word)
|
||||
20 stub TpOpenSection #(word ptr str word)
|
||||
21 stub TpCloseSection #(word)
|
||||
22 stub TpCommitSection #(word word str word)
|
||||
23 stub TpGetLine #(word str str word word ptr)
|
||||
24 stub TpGetNextLine #(word str str ptr)
|
||||
25 stub TpInsertLine #(word str str word word word)
|
||||
26 stub TpReplaceLine #(word str str word word word)
|
||||
27 stub TpDeleteLine #(word word word word)
|
||||
28 stub TpMoveLine #(word word word word word word)
|
||||
29 stub TpGetLineContents #(word ptr word ptr word word word)
|
||||
30 stub TpGetPrivateProfileString #(str str str ptr word str)
|
||||
31 stub TpWritePrivateProfileString #(str str str str)
|
||||
32 stub TpGetProfileString #(str str str ptr word)
|
||||
33 pascal -ret16 CtlSetLdd(ptr) CtlSetLdd16
|
||||
34 pascal -ret16 CtlGetLdd(ptr) CtlGetLdd16
|
||||
35 pascal -ret16 CtlFindLdd(ptr) CtlFindLdd16
|
||||
36 pascal -ret16 CtlAddLdd(ptr) CtlAddLdd16
|
||||
37 pascal -ret16 CtlDelLdd(word) CtlDelLdd16
|
||||
38 pascal -ret16 CtlGetLddPath(word ptr) CtlGetLddPath16
|
||||
39 stub SURegCloseKey #(word)
|
||||
40 stub SURegCreateKey #(word)
|
||||
41 stub SURegDeleteKey #(word str)
|
||||
42 stub SURegDeleteValue #(word str)
|
||||
43 stub SURegEnumKey #(word long ptr long)
|
||||
44 stub SURegEnumValue #(word long str ptr ptr ptr ptr ptr)
|
||||
45 stub SURegFlush #()
|
||||
46 stub SURegInit #()
|
||||
47 pascal SURegOpenKey(word str ptr) SURegOpenKey
|
||||
48 stub SURegQueryValue
|
||||
49 stub SURegQueryValue16 #(word str ptr ptr)
|
||||
50 pascal SURegQueryValueEx(long str ptr ptr ptr ptr) SURegQueryValueEx
|
||||
51 stub SURegSetValue
|
||||
52 stub SURegSetValue16 #(word str long ptr long)
|
||||
53 stub SURegSetValueEx #(word str long long ptr long)
|
||||
54 stub SURegSaveKey #(word str ptr)
|
||||
55 stub SURegLoadKey #(word str str)
|
||||
56 stub SURegUnLoadKey #(word str)
|
||||
60 stub DiskInfoFromLdid #(word ptr)
|
||||
61 pascal suErrorToIds(word word) suErrorToIds16
|
||||
62 pascal -ret16 TPWriteProfileString(str str str) TPWriteProfileString16
|
||||
63 stub SURPLSETUP
|
||||
# does SUSTORELDIDPATH set the path of an LDID in the registry ?
|
||||
64 stub SUSTORELDIDPATH
|
||||
65 stub WILDCARDSTRCMPI
|
||||
101 pascal -ret16 GenInstall(word str word) GenInstall16
|
||||
102 stub GenWinInitRename #(str str word)
|
||||
103 pascal GenFormStrWithoutPlaceHolders(str str word) GenFormStrWithoutPlaceHolders16
|
||||
104 stub SETUPX
|
||||
105 stub CfgSetupMerge #(word)
|
||||
106 stub INITDEPENDANTLDIDS
|
||||
107 stub CFGOBJFINDKEYCMD
|
||||
108 stub GenSURegSetValueEx
|
||||
109 stub GENINSTALLWITHQUEUE
|
||||
110 stub GenInstallEx #(word str word word ptr long)
|
||||
111 stub GenCopyLogConfig2Reg #(word word str)
|
||||
112 stub SUGetSetSetupFlags #(ptr word)
|
||||
114 stub CFGPARSELINE # returns array
|
||||
115 stub CFGSETAUTOPROCESS
|
||||
116 stub CFGOBJTOSTR
|
||||
117 stub CFGLNTOOBJ
|
||||
118 stub MATCHCMDEXT
|
||||
119 stub IpFindNextMatchLine #(word str ptr)
|
||||
120 stub P_SETDEFAULTOPTION
|
||||
121 stub CFGCLEANBOOT
|
||||
122 stub CFGMATCHCMDEXT
|
||||
123 stub CFGWASFILEUPDATED
|
||||
124 stub AUTOMATCHCMDEXT
|
||||
125 stub P_VALIDATEOC
|
||||
126 stub GENMAPROOTREGSTR2KEY
|
||||
127 stub P_CDROMOC
|
||||
128 stub P_MEDIAOC
|
||||
129 stub CFGCLEAN1STBOOT
|
||||
130 stub suFormatMessage
|
||||
131 stub suvFormatMessage #(word str str word ptr)
|
||||
132 stub suFormatMessageBox
|
||||
#133 stub suHelp # W98SE conflict !!
|
||||
135 stub suHelp #(word word)
|
||||
#135 stub P_WEBTVOC # W98SE conflict !!
|
||||
136 stub P_WBEMOC
|
||||
137 stub P_THEMESOC
|
||||
138 stub P_IMAGINGOC
|
||||
139 stub P_SCHEMESOC
|
||||
140 stub suVerConflict #(word ptr word ptr)
|
||||
141 stub suVerConflictInit #(word)
|
||||
142 stub suVerConflictTerm #(ptr)
|
||||
# Emergency Boot Disk
|
||||
143 stub suCreateEBD #(word ptr long)
|
||||
144 stub suCopyToEBD
|
||||
145 stub sxIsMSDOS7Running #()
|
||||
150 stub DS_INIT
|
||||
151 stub DS_DESTROY
|
||||
152 stub DS_SSYNCDRIVES
|
||||
153 stub DS_GETDRIVEDATA
|
||||
154 stub DS_ADDSECTION
|
||||
155 stub DS_ENABLESECTION
|
||||
156 stub DS_DISABLESECTION
|
||||
157 stub DS_SETSWAPSIZE
|
||||
158 stub DS_SETREQUIREDPAD
|
||||
159 stub DS_SETAVAILABLEPAD
|
||||
160 stub SXUPDATEDS
|
||||
170 stub SUSETMEM
|
||||
171 stub WriteDMFBootData #(word ptr word)
|
||||
200 pascal VcpOpen(segptr ptr) VcpOpen16
|
||||
201 pascal VcpClose(word str) VcpClose16
|
||||
202 pascal -ret16 vcpDefCallbackProc(ptr word word long long) vcpDefCallbackProc16
|
||||
203 stub vcpEnumFiles #(ptr long)
|
||||
204 pascal -ret16 VcpQueueRename(str str str str word word long) VcpQueueRename16
|
||||
205 pascal -ret16 vsmGetStringName(word ptr word) vsmGetStringName16
|
||||
206 pascal -ret16 vsmStringDelete(word) vsmStringDelete16
|
||||
207 pascal -ret16 vsmStringAdd(str) vsmStringAdd16
|
||||
208 pascal vsmGetStringRawName(word) vsmGetStringRawName16
|
||||
209 stub IpSaveRestorePosition #(word word)
|
||||
210 pascal -ret16 IpGetProfileString(word str str ptr word) IpGetProfileString16
|
||||
211 stub IpOpenEx #(str ptr word)
|
||||
212 stub IpOpenAppendEx #(str word word)
|
||||
213 pascal -ret16 vcpUICallbackProc(ptr word word long long) vcpUICallbackProc16
|
||||
214 stub VcpAddMRUPath #(str)
|
||||
300 pascal -ret16 DiBuildCompatDrvList (ptr) DiBuildCompatDrvList16
|
||||
301 pascal -ret16 DiBuildClassDrvList (ptr) DiBuildClassDrvList16
|
||||
302 stub DiDestroyDriverNodeList #(ptr)
|
||||
303 pascal -ret16 DiCreateDeviceInfo (ptr str long long str str word) DiCreateDeviceInfo16
|
||||
304 pascal -ret16 DiGetClassDevs(ptr str word word) DiGetClassDevs16
|
||||
305 pascal -ret16 DiDestroyDeviceInfoList (ptr) DiDestroyDeviceInfoList16
|
||||
306 stub DiRemoveDevice #(ptr)
|
||||
308 pascal -ret16 DiCallClassInstaller (word ptr) DiCallClassInstaller16
|
||||
309 stub DiCreateDriverNode #(ptr word word word str str str str str str long)
|
||||
310 stub DiDrawMiniIcon
|
||||
311 stub DiGetClassBitmapIndex #(str ptr)
|
||||
312 stub DiSelectDevice #(ptr)
|
||||
313 stub DiInstallDevice #(ptr)
|
||||
314 stub DiLoadClassIcon #(str ptr ptr)
|
||||
315 stub DiAskForOEMDisk #(ptr)
|
||||
316 stub Display_SetMode #(ptr word word word)
|
||||
317 stub Display_ClassInstaller #(word ptr)
|
||||
318 pascal -ret16 DiCreateDevRegKey (ptr ptr word str word) DiCreateDevRegKey16
|
||||
319 pascal -ret16 DiOpenDevRegKey (ptr ptr word) DiOpenDevRegKey16
|
||||
320 stub DiInstallDrvSection #(str str str str long)
|
||||
321 stub DiInstallClass #(str long)
|
||||
322 stub DiOpenClassRegKey #(ptr str)
|
||||
323 stub Display_SetFontSize #(str)
|
||||
324 stub Display_OpenFontSizeKey #(ptr)
|
||||
325 stub DiBuildClassDrvListFromOldInf #(ptr str ptr long)
|
||||
326 stub DiIsThereNeedToCopy #(word long)
|
||||
333 stub DiChangeState #(ptr long long long)
|
||||
334 stub WALKSUBTREE
|
||||
340 stub GetFctn #(word str str ptr ptr)
|
||||
341 stub DiBuildClassInfoList #(ptr)
|
||||
342 stub DiDestroyClassInfoList #(ptr)
|
||||
343 stub DiGetDeviceClassInfo #(ptr ptr)
|
||||
344 pascal -ret16 DiDeleteDevRegKey (ptr word) DiDeleteDevRegKey16
|
||||
350 stub DiSelectOEMDrv #(word ptr)
|
||||
351 stub DiGetINFClass #(str word str long)
|
||||
353 stub DIPICKBESTDRIVER
|
||||
355 stub COPYINFFILE
|
||||
360 stub GenInfLCToDevNode #(word str word word long)
|
||||
361 stub GETDOSMESSAGE
|
||||
362 stub Mouse_ClassInstaller #(word ptr)
|
||||
363 stub sxCompareDosAppVer #(str str)
|
||||
364 stub MONITOR_CLASSINSTALLER
|
||||
365 stub FCEGETRESDESOFFSET
|
||||
366 stub FCEGETALLOCVALUE
|
||||
367 stub FCEADDRESDES
|
||||
368 stub FCEDELETERESDES
|
||||
369 stub FCEINIT
|
||||
370 stub FCEGETRESDES
|
||||
371 stub FCEGETFIRSTVALUE
|
||||
372 stub FCEGETOTHERVALUE
|
||||
373 stub FCEGETVALIDATEVALUE
|
||||
374 stub FCEWRITETHISFORCEDCONFIGNOW
|
||||
375 stub SUCreatePropertySheetPage #(ptr)
|
||||
376 stub SUDestroyPropertySheetPage #(word)
|
||||
377 stub SUPropertySheet #(ptr)
|
||||
380 stub DiReadRegLogConf #(ptr str ptr ptr)
|
||||
381 stub DiReadRegConf #(ptr ptr ptr long)
|
||||
390 stub DiBuildPotentialDuplicatesList #(ptr ptr long ptr ptr)
|
||||
395 stub InitSubstrData #(ptr str)
|
||||
396 stub GetFirstSubstr #(ptr)
|
||||
397 stub GetNextSubstr #(ptr)
|
||||
398 stub INITSUBSTRDATAEX
|
||||
400 stub bIsFileInVMM32 #(str)
|
||||
401 stub DiInstallDriverFiles #(ptr)
|
||||
405 stub DiBuildClassInfoListEx #(ptr long)
|
||||
406 stub DiGetClassDevsEx #(ptr str str word word)
|
||||
407 stub DiCopyRegSubKeyValue #(word str str str)
|
||||
408 stub IPGETDRIVERDATE
|
||||
409 stub IPGETDRIVERVERSION
|
||||
410 stub IpGetVersionString #(str str ptr word str)
|
||||
411 pascal VcpExplain(ptr long) VcpExplain16
|
||||
412 stub DiBuildDriverIndex #(word)
|
||||
413 stub DiAddSingleInfToDrvIdx #(str word word)
|
||||
414 stub FCEGETFLAGS
|
||||
450 stub UiMakeDlgNonBold #(word)
|
||||
451 stub UiDeleteNonBoldFont #(word)
|
||||
500 stub SUEBDPAGE
|
||||
501 stub SUOCPAGE
|
||||
502 stub SXLISTSUBPROC
|
||||
503 stub SXFILLLB
|
||||
504 stub SXOCPAGEDLG
|
||||
506 stub SXOCBATCHSETTINGS
|
||||
507 stub SXOCFIXNEEDS
|
||||
508 pascal -ret16 CtlSetLddPath(word str) CtlSetLddPath16
|
||||
509 stub SXCALLOCPROC
|
||||
510 stub BUILDINFOCS
|
||||
511 stub BUILDREGOCS
|
||||
512 stub DELETEOCS
|
||||
520 stub DiBuildClassDrvInfoList #(ptr)
|
||||
521 stub DiBuildCompatDrvInfoList #(ptr)
|
||||
522 stub DiDestroyDrvInfoList #(ptr)
|
||||
523 stub DiConvertDriverInfoToDriverNode #(ptr ptr)
|
||||
524 stub DISELECTBESTCOMPATDRV
|
||||
525 stub FirstBootMoveToDOSSTART #(str word)
|
||||
526 stub DOSOptEnableCurCfg #(str)
|
||||
527 pascal -ret16 InstallHinfSection(word word str word) InstallHinfSection16
|
||||
528 stub SXMAKEUNCPATH
|
||||
529 stub SXISSBSSERVERFILE
|
||||
530 stub SXFINDBATCHFILES
|
||||
531 stub ISPANEUROPEAN
|
||||
532 stub UPGRADENIGGLINGS
|
||||
533 stub DISPLAY_ISSECONDDISPLAY
|
||||
534 stub ISWINDOWSFILE
|
||||
540 stub VERIFYSELECTEDDRIVER
|
||||
575 stub SXCALLMIGRATIONDLLS
|
||||
576 stub SXCALLMIGRATIONDLLS_RUNDLL
|
||||
600 stub PidConstruct #(str str str word)
|
||||
601 stub PidValidate #(str str)
|
||||
602 stub GETJAPANESEKEYBOARDTYPE
|
||||
610 stub CRC32COMPUTE
|
||||
621 stub SXSAVEINFO
|
||||
622 stub SXADDPAGEEX
|
||||
623 stub OPKREMOVEINSTALLEDNETDEVICE
|
||||
640 stub DOFIRSTRUNSCREENS
|
||||
700 stub SXSHOWREBOOTDLG
|
||||
701 stub SXSHOWREBOOTDLG_RUNDLL
|
||||
750 stub UIPOSITIONDIALOG
|
||||
775 stub ASPICLEAN
|
||||
800 stub EXTRACTCABFILE
|
||||
825 stub PIDGEN3
|
||||
826 stub GETSETUPINFO
|
||||
827 stub SETSETUPINFO
|
||||
828 stub GETKEYBOARDOPTIONS
|
||||
829 stub GETLOCALEOPTIONS
|
||||
830 stub SETINTLOPTIONS
|
||||
831 stub GETPRODUCTTYPE
|
||||
832 stub ISOPKMODE
|
||||
833 stub AUDITONETIMEINSTALL
|
||||
834 stub DISKDUP
|
||||
835 stub OPKPREINSTALL
|
||||
836 stub ISAUDITMODE
|
||||
837 stub ISAUDITAUTO
|
||||
838 stub GETVALIDEULA
|
||||
|
||||
+563
-563
File diff suppressed because it is too large
Load Diff
+615
-615
File diff suppressed because it is too large
Load Diff
+389
-389
@@ -1,389 +1,389 @@
|
||||
/*
|
||||
* Setupapi string table functions
|
||||
*
|
||||
* Copyright 2005 Eric Kohl
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winreg.h"
|
||||
#include "setupapi.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
|
||||
#define TABLE_DEFAULT_SIZE 256
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
typedef struct _STRING_TABLE
|
||||
{
|
||||
LPWSTR *pSlots; /* 0x00 */
|
||||
DWORD dwUsedSlots; /* 0x04 */
|
||||
DWORD dwMaxSlots; /* 0x08 */
|
||||
} STRING_TABLE, *PSTRING_TABLE;
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableInitialize [SETUPAPI.@]
|
||||
*
|
||||
* Creates a new string table and initializes it.
|
||||
*
|
||||
* PARAMS
|
||||
* None
|
||||
*
|
||||
* RETURNS
|
||||
* Success: Handle to the string table
|
||||
* Failure: NULL
|
||||
*/
|
||||
HSTRING_TABLE WINAPI
|
||||
StringTableInitialize(VOID)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
|
||||
TRACE("\n");
|
||||
|
||||
pStringTable = MyMalloc(sizeof(STRING_TABLE));
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(pStringTable, 0, sizeof(STRING_TABLE));
|
||||
|
||||
pStringTable->pSlots = MyMalloc(sizeof(LPWSTR) * TABLE_DEFAULT_SIZE);
|
||||
if (pStringTable->pSlots == NULL)
|
||||
{
|
||||
MyFree(pStringTable->pSlots);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(pStringTable->pSlots, 0, sizeof(LPWSTR) * TABLE_DEFAULT_SIZE);
|
||||
|
||||
pStringTable->dwUsedSlots = 0;
|
||||
pStringTable->dwMaxSlots = TABLE_DEFAULT_SIZE;
|
||||
|
||||
TRACE("Done\n");
|
||||
|
||||
return (HSTRING_TABLE)pStringTable;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableDestroy [SETUPAPI.@]
|
||||
*
|
||||
* Destroys a string table.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table to be destroyed
|
||||
*
|
||||
* RETURNS
|
||||
* None
|
||||
*/
|
||||
VOID WINAPI
|
||||
StringTableDestroy(HSTRING_TABLE hStringTable)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
DWORD i;
|
||||
|
||||
TRACE("%p\n", (PVOID)hStringTable);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
return;
|
||||
|
||||
if (pStringTable->pSlots != NULL)
|
||||
{
|
||||
for (i = 0; i < pStringTable->dwMaxSlots; i++)
|
||||
{
|
||||
if (pStringTable->pSlots[i] != NULL)
|
||||
{
|
||||
MyFree(pStringTable->pSlots[i]);
|
||||
pStringTable->pSlots[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
MyFree(pStringTable->pSlots);
|
||||
}
|
||||
|
||||
MyFree(pStringTable);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableAddString [SETUPAPI.@]
|
||||
*
|
||||
* Adds a new string to the string table.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table
|
||||
* lpString [I] String to be added to the string table
|
||||
* dwFlags [I] Flags
|
||||
* 1: case sensitive compare
|
||||
*
|
||||
* RETURNS
|
||||
* Success: String ID
|
||||
* Failure: -1
|
||||
*
|
||||
* NOTES
|
||||
* If the given string already exists in the string table it will not
|
||||
* be added again. The ID of the existing string will be returned in
|
||||
* this case.
|
||||
*/
|
||||
DWORD WINAPI
|
||||
StringTableAddString(HSTRING_TABLE hStringTable,
|
||||
LPWSTR lpString,
|
||||
DWORD dwFlags)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
DWORD i;
|
||||
|
||||
TRACE("%p %s %lx\n", (PVOID)hStringTable, debugstr_w(lpString), dwFlags);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
/* Search for existing string in the string table */
|
||||
for (i = 0; i < pStringTable->dwMaxSlots; i++)
|
||||
{
|
||||
if (pStringTable->pSlots[i] != NULL)
|
||||
{
|
||||
if (dwFlags & 1)
|
||||
{
|
||||
if (!lstrcmpW(pStringTable->pSlots[i], lpString))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!lstrcmpiW(pStringTable->pSlots[i], lpString))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Check for filled slot table */
|
||||
if (pStringTable->dwUsedSlots == pStringTable->dwMaxSlots)
|
||||
{
|
||||
FIXME("Resize the string table!\n");
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
/* Search for an empty slot */
|
||||
for (i = 0; i < pStringTable->dwMaxSlots; i++)
|
||||
{
|
||||
if (pStringTable->pSlots[i] == NULL)
|
||||
{
|
||||
pStringTable->pSlots[i] = MyMalloc(lstrlenW(lpString) + sizeof(WCHAR));
|
||||
if (pStringTable->pSlots[i] == NULL)
|
||||
{
|
||||
TRACE("Couldn't allocate memory for a new string!\n");
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
lstrcpyW(pStringTable->pSlots[i], lpString);
|
||||
|
||||
pStringTable->dwUsedSlots++;
|
||||
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
TRACE("Couldn't find an empty slot!\n");
|
||||
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableLookUpString [SETUPAPI.@]
|
||||
*
|
||||
* Searches a string table for a given string.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table
|
||||
* lpString [I] String to be searched for
|
||||
* dwFlags [I] Flags
|
||||
* 1: case sensitive compare
|
||||
*
|
||||
* RETURNS
|
||||
* Success: String ID
|
||||
* Failure: -1
|
||||
*/
|
||||
DWORD WINAPI
|
||||
StringTableLookUpString(HSTRING_TABLE hStringTable,
|
||||
LPWSTR lpString,
|
||||
DWORD dwFlags)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
DWORD i;
|
||||
|
||||
TRACE("%p %s %lx\n", (PVOID)hStringTable, debugstr_w(lpString), dwFlags);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
/* Search for existing string in the string table */
|
||||
for (i = 0; i < pStringTable->dwMaxSlots; i++)
|
||||
{
|
||||
if (pStringTable->pSlots[i] != NULL)
|
||||
{
|
||||
if (dwFlags & 1)
|
||||
{
|
||||
if (!lstrcmpW(pStringTable->pSlots[i], lpString))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!lstrcmpiW(pStringTable->pSlots[i], lpString))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableStringFromId [SETUPAPI.@]
|
||||
*
|
||||
* Returns a pointer to a string for the given string ID.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table.
|
||||
* dwId [I] String ID
|
||||
*
|
||||
* RETURNS
|
||||
* Success: Pointer to the string
|
||||
* Failure: NULL
|
||||
*/
|
||||
LPWSTR WINAPI
|
||||
StringTableStringFromId(HSTRING_TABLE hStringTable,
|
||||
DWORD dwId)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
|
||||
TRACE("%p %lx\n", (PVOID)hStringTable, dwId);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (dwId >= pStringTable->dwMaxSlots)
|
||||
return NULL;
|
||||
|
||||
return pStringTable->pSlots[dwId];
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableStringFromIdEx [SETUPAPI.@]
|
||||
*
|
||||
* Returns a string for the given string ID.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table
|
||||
* dwId [I] String ID
|
||||
* lpBuffer [I] Pointer to string buffer
|
||||
* lpBufferSize [I/O] Pointer to the size of the string buffer
|
||||
*
|
||||
* RETURNS
|
||||
* Success: TRUE
|
||||
* Failure: FALSE
|
||||
*/
|
||||
BOOL WINAPI
|
||||
StringTableStringFromIdEx(HSTRING_TABLE hStringTable,
|
||||
DWORD dwId,
|
||||
LPWSTR lpBuffer,
|
||||
LPDWORD lpBufferLength)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
DWORD dwLength;
|
||||
BOOL bResult = FALSE;
|
||||
|
||||
TRACE("%p %lx %p %p\n",
|
||||
(PVOID)hStringTable, dwId, lpBuffer, lpBufferLength);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
*lpBufferLength = 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (dwId >= pStringTable->dwMaxSlots ||
|
||||
pStringTable->pSlots[dwId] == NULL)
|
||||
{
|
||||
WARN("Invalid string ID!\n");
|
||||
*lpBufferLength = 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
dwLength = lstrlenW(pStringTable->pSlots[dwId]) + sizeof(WCHAR);
|
||||
if (dwLength <= *lpBufferLength)
|
||||
{
|
||||
lstrcpyW(lpBuffer, pStringTable->pSlots[dwId]);
|
||||
bResult = TRUE;
|
||||
}
|
||||
|
||||
*lpBufferLength = dwLength;
|
||||
|
||||
return bResult;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableTrim [SETUPAPI.@]
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table
|
||||
*
|
||||
* RETURNS
|
||||
* None
|
||||
*/
|
||||
VOID WINAPI
|
||||
StringTableTrim(HSTRING_TABLE hStringTable)
|
||||
{
|
||||
FIXME("%p\n", (PVOID)hStringTable);
|
||||
}
|
||||
/*
|
||||
* Setupapi string table functions
|
||||
*
|
||||
* Copyright 2005 Eric Kohl
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winreg.h"
|
||||
#include "setupapi.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
|
||||
#define TABLE_DEFAULT_SIZE 256
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
typedef struct _STRING_TABLE
|
||||
{
|
||||
LPWSTR *pSlots; /* 0x00 */
|
||||
DWORD dwUsedSlots; /* 0x04 */
|
||||
DWORD dwMaxSlots; /* 0x08 */
|
||||
} STRING_TABLE, *PSTRING_TABLE;
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableInitialize [SETUPAPI.@]
|
||||
*
|
||||
* Creates a new string table and initializes it.
|
||||
*
|
||||
* PARAMS
|
||||
* None
|
||||
*
|
||||
* RETURNS
|
||||
* Success: Handle to the string table
|
||||
* Failure: NULL
|
||||
*/
|
||||
HSTRING_TABLE WINAPI
|
||||
StringTableInitialize(VOID)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
|
||||
TRACE("\n");
|
||||
|
||||
pStringTable = MyMalloc(sizeof(STRING_TABLE));
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(pStringTable, 0, sizeof(STRING_TABLE));
|
||||
|
||||
pStringTable->pSlots = MyMalloc(sizeof(LPWSTR) * TABLE_DEFAULT_SIZE);
|
||||
if (pStringTable->pSlots == NULL)
|
||||
{
|
||||
MyFree(pStringTable->pSlots);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
memset(pStringTable->pSlots, 0, sizeof(LPWSTR) * TABLE_DEFAULT_SIZE);
|
||||
|
||||
pStringTable->dwUsedSlots = 0;
|
||||
pStringTable->dwMaxSlots = TABLE_DEFAULT_SIZE;
|
||||
|
||||
TRACE("Done\n");
|
||||
|
||||
return (HSTRING_TABLE)pStringTable;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableDestroy [SETUPAPI.@]
|
||||
*
|
||||
* Destroys a string table.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table to be destroyed
|
||||
*
|
||||
* RETURNS
|
||||
* None
|
||||
*/
|
||||
VOID WINAPI
|
||||
StringTableDestroy(HSTRING_TABLE hStringTable)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
DWORD i;
|
||||
|
||||
TRACE("%p\n", (PVOID)hStringTable);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
return;
|
||||
|
||||
if (pStringTable->pSlots != NULL)
|
||||
{
|
||||
for (i = 0; i < pStringTable->dwMaxSlots; i++)
|
||||
{
|
||||
if (pStringTable->pSlots[i] != NULL)
|
||||
{
|
||||
MyFree(pStringTable->pSlots[i]);
|
||||
pStringTable->pSlots[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
MyFree(pStringTable->pSlots);
|
||||
}
|
||||
|
||||
MyFree(pStringTable);
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableAddString [SETUPAPI.@]
|
||||
*
|
||||
* Adds a new string to the string table.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table
|
||||
* lpString [I] String to be added to the string table
|
||||
* dwFlags [I] Flags
|
||||
* 1: case sensitive compare
|
||||
*
|
||||
* RETURNS
|
||||
* Success: String ID
|
||||
* Failure: -1
|
||||
*
|
||||
* NOTES
|
||||
* If the given string already exists in the string table it will not
|
||||
* be added again. The ID of the existing string will be returned in
|
||||
* this case.
|
||||
*/
|
||||
DWORD WINAPI
|
||||
StringTableAddString(HSTRING_TABLE hStringTable,
|
||||
LPWSTR lpString,
|
||||
DWORD dwFlags)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
DWORD i;
|
||||
|
||||
TRACE("%p %s %lx\n", (PVOID)hStringTable, debugstr_w(lpString), dwFlags);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
/* Search for existing string in the string table */
|
||||
for (i = 0; i < pStringTable->dwMaxSlots; i++)
|
||||
{
|
||||
if (pStringTable->pSlots[i] != NULL)
|
||||
{
|
||||
if (dwFlags & 1)
|
||||
{
|
||||
if (!lstrcmpW(pStringTable->pSlots[i], lpString))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!lstrcmpiW(pStringTable->pSlots[i], lpString))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Check for filled slot table */
|
||||
if (pStringTable->dwUsedSlots == pStringTable->dwMaxSlots)
|
||||
{
|
||||
FIXME("Resize the string table!\n");
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
/* Search for an empty slot */
|
||||
for (i = 0; i < pStringTable->dwMaxSlots; i++)
|
||||
{
|
||||
if (pStringTable->pSlots[i] == NULL)
|
||||
{
|
||||
pStringTable->pSlots[i] = MyMalloc(lstrlenW(lpString) + sizeof(WCHAR));
|
||||
if (pStringTable->pSlots[i] == NULL)
|
||||
{
|
||||
TRACE("Couldn't allocate memory for a new string!\n");
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
lstrcpyW(pStringTable->pSlots[i], lpString);
|
||||
|
||||
pStringTable->dwUsedSlots++;
|
||||
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
TRACE("Couldn't find an empty slot!\n");
|
||||
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableLookUpString [SETUPAPI.@]
|
||||
*
|
||||
* Searches a string table for a given string.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table
|
||||
* lpString [I] String to be searched for
|
||||
* dwFlags [I] Flags
|
||||
* 1: case sensitive compare
|
||||
*
|
||||
* RETURNS
|
||||
* Success: String ID
|
||||
* Failure: -1
|
||||
*/
|
||||
DWORD WINAPI
|
||||
StringTableLookUpString(HSTRING_TABLE hStringTable,
|
||||
LPWSTR lpString,
|
||||
DWORD dwFlags)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
DWORD i;
|
||||
|
||||
TRACE("%p %s %lx\n", (PVOID)hStringTable, debugstr_w(lpString), dwFlags);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
/* Search for existing string in the string table */
|
||||
for (i = 0; i < pStringTable->dwMaxSlots; i++)
|
||||
{
|
||||
if (pStringTable->pSlots[i] != NULL)
|
||||
{
|
||||
if (dwFlags & 1)
|
||||
{
|
||||
if (!lstrcmpW(pStringTable->pSlots[i], lpString))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!lstrcmpiW(pStringTable->pSlots[i], lpString))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (DWORD)-1;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableStringFromId [SETUPAPI.@]
|
||||
*
|
||||
* Returns a pointer to a string for the given string ID.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table.
|
||||
* dwId [I] String ID
|
||||
*
|
||||
* RETURNS
|
||||
* Success: Pointer to the string
|
||||
* Failure: NULL
|
||||
*/
|
||||
LPWSTR WINAPI
|
||||
StringTableStringFromId(HSTRING_TABLE hStringTable,
|
||||
DWORD dwId)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
|
||||
TRACE("%p %lx\n", (PVOID)hStringTable, dwId);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (dwId >= pStringTable->dwMaxSlots)
|
||||
return NULL;
|
||||
|
||||
return pStringTable->pSlots[dwId];
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableStringFromIdEx [SETUPAPI.@]
|
||||
*
|
||||
* Returns a string for the given string ID.
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table
|
||||
* dwId [I] String ID
|
||||
* lpBuffer [I] Pointer to string buffer
|
||||
* lpBufferSize [I/O] Pointer to the size of the string buffer
|
||||
*
|
||||
* RETURNS
|
||||
* Success: TRUE
|
||||
* Failure: FALSE
|
||||
*/
|
||||
BOOL WINAPI
|
||||
StringTableStringFromIdEx(HSTRING_TABLE hStringTable,
|
||||
DWORD dwId,
|
||||
LPWSTR lpBuffer,
|
||||
LPDWORD lpBufferLength)
|
||||
{
|
||||
PSTRING_TABLE pStringTable;
|
||||
DWORD dwLength;
|
||||
BOOL bResult = FALSE;
|
||||
|
||||
TRACE("%p %lx %p %p\n",
|
||||
(PVOID)hStringTable, dwId, lpBuffer, lpBufferLength);
|
||||
|
||||
pStringTable = (PSTRING_TABLE)hStringTable;
|
||||
if (pStringTable == NULL)
|
||||
{
|
||||
ERR("Invalid hStringTable!\n");
|
||||
*lpBufferLength = 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (dwId >= pStringTable->dwMaxSlots ||
|
||||
pStringTable->pSlots[dwId] == NULL)
|
||||
{
|
||||
WARN("Invalid string ID!\n");
|
||||
*lpBufferLength = 0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
dwLength = lstrlenW(pStringTable->pSlots[dwId]) + sizeof(WCHAR);
|
||||
if (dwLength <= *lpBufferLength)
|
||||
{
|
||||
lstrcpyW(lpBuffer, pStringTable->pSlots[dwId]);
|
||||
bResult = TRUE;
|
||||
}
|
||||
|
||||
*lpBufferLength = dwLength;
|
||||
|
||||
return bResult;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* StringTableTrim [SETUPAPI.@]
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* PARAMS
|
||||
* hStringTable [I] Handle to the string table
|
||||
*
|
||||
* RETURNS
|
||||
* None
|
||||
*/
|
||||
VOID WINAPI
|
||||
StringTableTrim(HSTRING_TABLE hStringTable)
|
||||
{
|
||||
FIXME("%p\n", (PVOID)hStringTable);
|
||||
}
|
||||
|
||||
+157
-157
@@ -1,157 +1,157 @@
|
||||
/*
|
||||
* SetupAPI stubs
|
||||
*
|
||||
* Copyright 2000 James Hatheway
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "wine/debug.h"
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "winreg.h"
|
||||
#include "setupapi.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
/***********************************************************************
|
||||
* TPWriteProfileString (SETUPX.62)
|
||||
*/
|
||||
BOOL WINAPI TPWriteProfileString16( LPCSTR section, LPCSTR entry, LPCSTR string )
|
||||
{
|
||||
FIXME( "%s %s %s: stub\n", debugstr_a(section), debugstr_a(entry), debugstr_a(string) );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* suErrorToIds (SETUPX.61)
|
||||
*/
|
||||
DWORD WINAPI suErrorToIds16( WORD w1, WORD w2 )
|
||||
{
|
||||
FIXME( "%x %x: stub\n", w1, w2 );
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDiGetDeviceInfoListDetailA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupDiGetDeviceInfoListDetailA(HDEVINFO devinfo, PSP_DEVINFO_LIST_DETAIL_DATA_A devinfo_data )
|
||||
{
|
||||
FIXME("\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDiGetDeviceInfoListDetailW (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupDiGetDeviceInfoListDetailW(HDEVINFO devinfo, PSP_DEVINFO_LIST_DETAIL_DATA_W devinfo_data )
|
||||
{
|
||||
FIXME("\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* (SETUPAPI.@)
|
||||
*
|
||||
* NO WINAPI in description given
|
||||
*/
|
||||
HDEVINFO WINAPI SetupDiGetClassDevsExA(const GUID *class, PCSTR filter, HWND parent, DWORD flags, HDEVINFO deviceset, PCSTR machine, PVOID reserved)
|
||||
{
|
||||
FIXME("filter %s machine %s\n",debugstr_a(filter),debugstr_a(machine));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* (SETUPAPI.@)
|
||||
*
|
||||
* NO WINAPI in description given
|
||||
*/
|
||||
HDEVINFO WINAPI SetupDiGetClassDevsExW(const GUID *class, PCWSTR filter, HWND parent, DWORD flags, HDEVINFO deviceset, PCWSTR machine, PVOID reserved)
|
||||
{
|
||||
FIXME("\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupCopyOEMInfA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupCopyOEMInfA(PCSTR sourceinffile, PCSTR sourcemedialoc,
|
||||
DWORD mediatype, DWORD copystyle, PSTR destinfname,
|
||||
DWORD destnamesize, PDWORD required,
|
||||
PSTR *destinfnamecomponent)
|
||||
{
|
||||
FIXME("stub: source %s location %s ...\n", debugstr_a(sourceinffile),
|
||||
debugstr_a(sourcemedialoc));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupCopyOEMInfW (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupCopyOEMInfW(PCWSTR sourceinffile, PCWSTR sourcemedialoc,
|
||||
DWORD mediatype, DWORD copystyle, PWSTR destinfname,
|
||||
DWORD destnamesize, PDWORD required,
|
||||
PWSTR *destinfnamecomponent)
|
||||
{
|
||||
FIXME("stub: source %s location %s ...\n", debugstr_w(sourceinffile),
|
||||
debugstr_w(sourcemedialoc));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupGetInfInformationA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupGetInfInformationA( LPCVOID InfSpec, DWORD SearchControl,
|
||||
PSP_INF_INFORMATION ReturnBuffer,
|
||||
DWORD ReturnBufferSize, PDWORD RequiredSize)
|
||||
{
|
||||
FIXME("(%p, %ld, %p, %ld, %p) Stub!\n",
|
||||
InfSpec, SearchControl, ReturnBuffer, ReturnBufferSize, RequiredSize );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupInitializeFileLogW(SETUPAPI.@)
|
||||
*/
|
||||
HANDLE WINAPI SetupInitializeFileLogW(LPWSTR LogFileName, DWORD Flags)
|
||||
{
|
||||
FIXME("Stub %s, 0x%lx\n",debugstr_w(LogFileName),Flags);
|
||||
return INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupInitializeFileLogA(SETUPAPI.@)
|
||||
*/
|
||||
HANDLE WINAPI SetupInitializeFileLogA(LPSTR LogFileName, DWORD Flags)
|
||||
{
|
||||
FIXME("Stub %s, 0x%lx\n",debugstr_a(LogFileName),Flags);
|
||||
return INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupTerminateFileLog(SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)
|
||||
{
|
||||
FIXME ("Stub %p\n",FileLogHandle);
|
||||
return TRUE;
|
||||
}
|
||||
/*
|
||||
* SetupAPI stubs
|
||||
*
|
||||
* Copyright 2000 James Hatheway
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "wine/debug.h"
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "winnls.h"
|
||||
#include "winreg.h"
|
||||
#include "setupapi.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(setupapi);
|
||||
|
||||
/***********************************************************************
|
||||
* TPWriteProfileString (SETUPX.62)
|
||||
*/
|
||||
BOOL WINAPI TPWriteProfileString16( LPCSTR section, LPCSTR entry, LPCSTR string )
|
||||
{
|
||||
FIXME( "%s %s %s: stub\n", debugstr_a(section), debugstr_a(entry), debugstr_a(string) );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* suErrorToIds (SETUPX.61)
|
||||
*/
|
||||
DWORD WINAPI suErrorToIds16( WORD w1, WORD w2 )
|
||||
{
|
||||
FIXME( "%x %x: stub\n", w1, w2 );
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDiGetDeviceInfoListDetailA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupDiGetDeviceInfoListDetailA(HDEVINFO devinfo, PSP_DEVINFO_LIST_DETAIL_DATA_A devinfo_data )
|
||||
{
|
||||
FIXME("\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupDiGetDeviceInfoListDetailW (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupDiGetDeviceInfoListDetailW(HDEVINFO devinfo, PSP_DEVINFO_LIST_DETAIL_DATA_W devinfo_data )
|
||||
{
|
||||
FIXME("\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* (SETUPAPI.@)
|
||||
*
|
||||
* NO WINAPI in description given
|
||||
*/
|
||||
HDEVINFO WINAPI SetupDiGetClassDevsExA(const GUID *class, PCSTR filter, HWND parent, DWORD flags, HDEVINFO deviceset, PCSTR machine, PVOID reserved)
|
||||
{
|
||||
FIXME("filter %s machine %s\n",debugstr_a(filter),debugstr_a(machine));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* (SETUPAPI.@)
|
||||
*
|
||||
* NO WINAPI in description given
|
||||
*/
|
||||
HDEVINFO WINAPI SetupDiGetClassDevsExW(const GUID *class, PCWSTR filter, HWND parent, DWORD flags, HDEVINFO deviceset, PCWSTR machine, PVOID reserved)
|
||||
{
|
||||
FIXME("\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* SetupCopyOEMInfA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupCopyOEMInfA(PCSTR sourceinffile, PCSTR sourcemedialoc,
|
||||
DWORD mediatype, DWORD copystyle, PSTR destinfname,
|
||||
DWORD destnamesize, PDWORD required,
|
||||
PSTR *destinfnamecomponent)
|
||||
{
|
||||
FIXME("stub: source %s location %s ...\n", debugstr_a(sourceinffile),
|
||||
debugstr_a(sourcemedialoc));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupCopyOEMInfW (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupCopyOEMInfW(PCWSTR sourceinffile, PCWSTR sourcemedialoc,
|
||||
DWORD mediatype, DWORD copystyle, PWSTR destinfname,
|
||||
DWORD destnamesize, PDWORD required,
|
||||
PWSTR *destinfnamecomponent)
|
||||
{
|
||||
FIXME("stub: source %s location %s ...\n", debugstr_w(sourceinffile),
|
||||
debugstr_w(sourcemedialoc));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupGetInfInformationA (SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupGetInfInformationA( LPCVOID InfSpec, DWORD SearchControl,
|
||||
PSP_INF_INFORMATION ReturnBuffer,
|
||||
DWORD ReturnBufferSize, PDWORD RequiredSize)
|
||||
{
|
||||
FIXME("(%p, %ld, %p, %ld, %p) Stub!\n",
|
||||
InfSpec, SearchControl, ReturnBuffer, ReturnBufferSize, RequiredSize );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupInitializeFileLogW(SETUPAPI.@)
|
||||
*/
|
||||
HANDLE WINAPI SetupInitializeFileLogW(LPWSTR LogFileName, DWORD Flags)
|
||||
{
|
||||
FIXME("Stub %s, 0x%lx\n",debugstr_w(LogFileName),Flags);
|
||||
return INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupInitializeFileLogA(SETUPAPI.@)
|
||||
*/
|
||||
HANDLE WINAPI SetupInitializeFileLogA(LPSTR LogFileName, DWORD Flags)
|
||||
{
|
||||
FIXME("Stub %s, 0x%lx\n",debugstr_a(LogFileName),Flags);
|
||||
return INVALID_HANDLE_VALUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* SetupTerminateFileLog(SETUPAPI.@)
|
||||
*/
|
||||
BOOL WINAPI SetupTerminateFileLog(HANDLE FileLogHandle)
|
||||
{
|
||||
FIXME ("Stub %p\n",FileLogHandle);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+788
-788
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user