mirror of
https://github.com/reactos/reactos.git
synced 2025-05-28 05:28:14 +00:00
Set svn:eol-style property to native
svn path=/trunk/; revision=16373
This commit is contained in:
parent
c18f64ffe6
commit
46903e60ea
34 changed files with 12613 additions and 12613 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -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"
|
||||
|
|
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 */
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue