mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 05:15:41 +00:00
Synchronize with trunk r58606.
svn path=/branches/ros-csrss/; revision=58607
This commit is contained in:
commit
1e1a59fb22
235 changed files with 13278 additions and 5390 deletions
|
@ -3,7 +3,7 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
|
||||
IDS_HELP, "ファイルのアクセス制御リスト(ACL) を表 示または変更します。n\n\
|
||||
IDS_HELP, "ファイルのアクセス制御リスト(ACL) を表示または変更します。\n\n\
|
||||
CACLS ファイル名 [/T] [/E] [/C] [/G ユーザー名:アクセス権]\n\
|
||||
[/R ユーザー名 [...]] [/P ユーザー名:アクセス権 [...]]\n\
|
||||
[/D ユーザー名 [...]]\n\
|
||||
|
|
|
@ -18,6 +18,15 @@
|
|||
#ifdef LANGUAGE_EN_US
|
||||
#include "lang/en-US.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ES_ES
|
||||
#include "lang/es-ES.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_FR_FR
|
||||
#include "lang/fr-FR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_IT_IT
|
||||
#include "lang/it-IT.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_PL_PL
|
||||
#include "lang/pl-PL.rc"
|
||||
#endif
|
||||
|
@ -33,9 +42,3 @@
|
|||
#ifdef LANGUAGE_ZH_CN
|
||||
#include "lang/zh-CN.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_FR_FR
|
||||
#include "lang/fr-FR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ES_ES
|
||||
#include "lang/es-ES.rc"
|
||||
#endif
|
||||
|
|
27
base/applications/cmdutils/doskey/lang/it-IT.rc
Normal file
27
base/applications/cmdutils/doskey/lang/it-IT.rc
Normal file
|
@ -0,0 +1,27 @@
|
|||
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
|
||||
IDS_HELP, "Gestisce le impostazioni della riga di comando di editing, la cronologia e le macro.\n\
|
||||
\n\
|
||||
DOSKEY [/INSERT | /OVERSTRIKE] [/EXENAME=exe] [/HISTORY] [/LISTSIZE=size]\n\
|
||||
[/REINSTALL] [/MACROS[:exe | :ALL]] [/MACROFILE=file] [macroname=[text]]\n\
|
||||
\n\
|
||||
/INSERT Attiva la modalità di inserimento.\n\
|
||||
/OVERSTRIKE Disattiva la modalità di inserimento.\n\
|
||||
/EXENAME=exename Consente di impostare il nome del programma per visualizzare/cambiare la cronologia\n\
|
||||
e le macro. Il valore predefinito è cmd.exe.\n\
|
||||
/HISTORY Consente di visualizzare la cronologia dei comandi.\n\
|
||||
/LISTSIZE=size Imposta il numero di comandi al buffer storico.\n\
|
||||
/REINSTALL Cancella la cronologia dei comandi.\n\
|
||||
/MACROS Consente di visualizzare le definizioni delle macro.\n\
|
||||
/MACROS:exename Visualizza le definizioni di macro per un programma specifico.\n\
|
||||
/MACROS:ALL Visualizza le definizioni macro per tutti i programmi.\n\
|
||||
/MACROFILE=file Carica le definizioni di macro da un file.\n\
|
||||
macroname Specifica il nome di una macro per creare.\n\
|
||||
text Consente di specificare il testo di sostituzione per la macro.\n"
|
||||
|
||||
IDS_INVALID_MACRO_DEF, "Definizion macro non valida: %s\n"
|
||||
|
||||
END
|
226
base/applications/dxdiag/lang/it-IT.rc
Normal file
226
base/applications/dxdiag/lang/it-IT.rc
Normal file
|
@ -0,0 +1,226 @@
|
|||
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
|
||||
|
||||
IDD_MAIN_DIALOG DIALOGEX DISCARDABLE 0, 0, 478, 280
|
||||
STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
|
||||
WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
|
||||
WS_THICKFRAME
|
||||
CAPTION "Programma di diagnostica ReactX"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "Tab1",IDC_TAB_CONTROL,"SysTabControl32",WS_TABSTOP,2,2,474,250
|
||||
PUSHBUTTON "&Aiuto", IDC_BUTTON_HELP, 2, 261, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
DEFPUSHBUTTON "&Prossima pagina", IDC_BUTTON_NEXT, 257, 261, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
PUSHBUTTON "&Salva tutte le informazioni...", IDC_BUTTON_SAVE_INFO, 311, 261, 110, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
PUSHBUTTON "&uSCITA", IDC_BUTTON_EXIT, 425, 261, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_SYSTEM_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
|
||||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "Questo strumento riporta informazioni dettagliate sui componenti ReactX e dei driver installati sul sistema.", -1, 10, 10, 443, 17
|
||||
LTEXT "Se si sa quale zona è la causa del problema, fare clic sopra la scheda appropriata. In caso contrario, è possibile utilizzare il tasto Pagina successiva qui sotto per visitare ogni pagina in sequenza.", -1, 10, 30, 443, 25
|
||||
GROUPBOX "Informazioni di sistema", -1, 10, 55, 443, 130, SS_RIGHT
|
||||
LTEXT "Data/Ora:", -1, 70, 70, 80, 10, SS_RIGHT
|
||||
LTEXT "Nome del computer:", -1, 70, 80, 80, 10, SS_RIGHT
|
||||
LTEXT "Sistema operativo:", -1, 70, 90, 80, 10, SS_RIGHT
|
||||
LTEXT "Lingua:", -1, 70, 100, 80, 10, SS_RIGHT
|
||||
LTEXT "Produttore DI sistema:", -1, 70, 110, 80, 10, SS_RIGHT
|
||||
LTEXT "Modello di Sistem :", -1, 70, 120, 80, 10, SS_RIGHT
|
||||
LTEXT "BIOS:", -1, 70, 130, 80, 10, SS_RIGHT
|
||||
LTEXT "Processore:", -1, 70, 140, 80, 10, SS_RIGHT
|
||||
LTEXT "Memoria:", -1, 70, 150, 80, 10, SS_RIGHT
|
||||
LTEXT "Page file:", -1, 70, 160, 80, 10, SS_RIGHT
|
||||
LTEXT "ReactX-Version:", -1, 70, 170, 80, 10, SS_RIGHT
|
||||
LTEXT "", IDC_STATIC_TIME, 155, 70, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_COMPUTER, 155, 80, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_OS, 155, 90, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_LANG, 155, 100, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_MANU, 155, 110, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_MODEL, 155, 120, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_BIOS, 155, 130, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_PROC, 155, 140, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_MEM, 155, 150, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_SWAP, 155, 160, 195, 10, SS_LEFT
|
||||
LTEXT "", IDC_STATIC_VERSION, 155, 170, 195, 10, SS_LEFT
|
||||
END
|
||||
|
||||
IDD_DISPLAY_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
|
||||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Device", -1, 10, 10, 250, 100
|
||||
RTEXT "Nome:", -1, 20, 25, 70, 10
|
||||
RTEXT "Fabbricante:", -1, 20, 35, 70, 10
|
||||
RTEXT "Chip Type:", -1, 20, 45, 70, 10
|
||||
RTEXT "DAC Type:", -1, 20, 55, 70, 10
|
||||
RTEXT "Totale memnoria (Approssimativo):", -1, 20, 65, 70, 10
|
||||
RTEXT "Modalità di visualizzazione corrente:", -1, 20, 75, 70, 10
|
||||
RTEXT "Monitor:", -1, 20, 85, 70, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_ID, 95, 25, 150, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_VENDOR, 95, 35, 150, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_CHIP, 95, 45, 150, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_DAC, 95, 55, 150, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_MEM, 95, 65, 150, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_MODE, 95, 75, 150, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_MONITOR, 95, 85, 150, 10
|
||||
|
||||
GROUPBOX "Driver", -1, 270, 10, 190, 100
|
||||
RTEXT "Driver Principale:", -1, 275, 25, 55, 10
|
||||
RTEXT "Versione:", -1, 275, 35, 55, 10
|
||||
RTEXT "Data:", -1, 275, 45, 55, 10
|
||||
RTEXT "WHQL-Logo:", -1, 275, 55, 55, 10
|
||||
RTEXT "Mini-VDD:", -1, 275, 65, 55, 10
|
||||
RTEXT " vvdddVDD:", -1, 275, 75, 55, 10
|
||||
RTEXT "DDI Version:", -1, 275, 85, 55, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_DRIVER, 335, 35, 100, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_VERSION, 335, 35, 100, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_DATE, 335, 45, 100, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_LOGO, 335, 55, 100, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_MINIVDD, 335, 65, 100, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_VDD, 335, 75, 100, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_DDI, 335, 85, 100, 10
|
||||
|
||||
GROUPBOX "ReactX-Features", -1, 10, 115, 450, 60
|
||||
RTEXT "Accelerazione DirectDraw:", -1, 15, 130, 110, 12
|
||||
RTEXT "Accelerazione Direct3D:", -1, 15, 145, 110, 12
|
||||
RTEXT "AGP Texture Acceleration:", -1, 15, 160, 110, 12
|
||||
LTEXT "", IDC_STATIC_DDSTATE, 130, 130, 40, 10
|
||||
LTEXT "", IDC_STATIC_D3DSTATE, 130, 145, 40, 10
|
||||
LTEXT "", IDC_STATIC_AGPSTATE, 130, 160, 40, 10
|
||||
PUSHBUTTON "Abilita", IDC_BUTTON_DDRAW, 170, 124, 60, 14, WS_DISABLED
|
||||
PUSHBUTTON "Abilita", IDC_BUTTON_D3D, 170, 140, 60, 14, WS_DISABLED
|
||||
PUSHBUTTON "Abilita", IDC_BUTTON_AGP, 170, 156, 60, 14, WS_DISABLED
|
||||
PUSHBUTTON "Test DirectDraw", IDC_BUTTON_TESTDD, 250, 124, 80, 14
|
||||
PUSHBUTTON "Test Direct3D", IDC_BUTTON_TEST3D, 250, 140, 80, 14
|
||||
|
||||
GROUPBOX "Notes", -1, 10, 180, 450, 40
|
||||
EDITTEXT IDC_TEXT_INFO, 20, 192, 432, 20, WS_DISABLED | WS_TABSTOP
|
||||
END
|
||||
|
||||
|
||||
IDD_SOUND_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
|
||||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Device", -1, 10, 10, 250, 100
|
||||
RTEXT "Nome:", -1, 20, 25, 70, 10
|
||||
RTEXT "Device ID:", -1, 20, 35, 70, 10
|
||||
RTEXT "Manufacturer ID:", -1, 20, 45, 70, 10
|
||||
RTEXT "Product ID:", -1, 20, 55, 70, 10
|
||||
RTEXT "Tipo:", -1, 20, 65, 70, 10
|
||||
RTEXT "Default Device:", -1, 20, 75, 70, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_NAME, 95, 25, 150, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_DEVICEID, 95, 35, 150, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_VENDORID, 95, 45, 150, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_PRODUCTID, 95, 55, 150, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_TYPE, 95, 65, 150, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_STANDARD, 95, 75, 150, 10
|
||||
GROUPBOX "Driver", -1, 270, 10, 190, 100
|
||||
RTEXT "Nome:", -1, 275, 25, 55, 10
|
||||
RTEXT "Versione:", -1, 275, 35, 55, 10
|
||||
RTEXT "Data:", -1, 275, 45, 55, 10
|
||||
RTEXT "WHQL-Logo:", -1, 275, 55, 55, 10
|
||||
RTEXT "Altri Files:", -1, 275, 65, 55, 10
|
||||
RTEXT "Provider:", -1, 275, 75, 55, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_DRIVER, 335, 25, 100, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_VERSION, 335, 35, 100, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_DATE, 335, 45, 100, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_LOGO, 335, 55, 100, 10
|
||||
LTEXT "", IDC_STATIC_DSOUND_FILES, 335, 65, 100, 10
|
||||
LTEXT "", IDC_STATIC_ADAPTER_PROVIDER, 335, 75, 100, 10
|
||||
GROUPBOX "ReactX-Features", -1, 10, 115, 450, 60
|
||||
CONTROL "", IDC_SLIDER_DSOUND, "msctls_trackbar32", TBS_BOTTOM | TBS_AUTOTICKS | WS_TABSTOP, 120, 135, 80, 17
|
||||
RTEXT "Hardware Sound\nAcceleration Level:", -1, 20, 135, 90, 20
|
||||
PUSHBUTTON "Test DirectSound", IDC_BUTTON_TESTDSOUND, 270, 134, 80, 14
|
||||
GROUPBOX "Note", -1, 10, 180, 450, 40
|
||||
EDITTEXT IDC_TEXT_DSOUNDINFO, 20, 192, 432, 20, WS_DISABLED | WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_MUSIC_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
|
||||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
END
|
||||
|
||||
|
||||
IDD_INPUT_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
|
||||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "DirectInput Devices", -1, 10, 10, 452, 80
|
||||
CONTROL "", IDC_LIST_DEVICE, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 22, 432, 60
|
||||
GROUPBOX "Input Devices", -1, 10, 100, 452, 60
|
||||
CONTROL "", IDC_TREE_PORT, "SysTreeView32", TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_DISABLEDRAGDROP | TVS_SHOWSELALWAYS | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 20, 112, 432, 40, 0x00000200
|
||||
GROUPBOX "Informazioni", -1, 10, 170, 452, 50
|
||||
EDITTEXT IDC_RICH_INFO, 20, 182, 432, 30, WS_DISABLED | WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_NETWORK_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
|
||||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Registered DirectPlay Service Provider", -1, 10, 10, 452, 80
|
||||
CONTROL "", IDC_LIST_PROVIDER, "SysListView32", LVS_REPORT | WS_CHILD | WS_BORDER | WS_TABSTOP, 20, 22, 432, 60
|
||||
END
|
||||
|
||||
IDD_HELP_DIALOG DIALOGEX DISCARDABLE 0, 0, 462, 220
|
||||
STYLE DS_SHELLFONT | DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_MAIN_DIALOG "Tool di diagnostica ReactX"
|
||||
IDS_SYSTEM_DIALOG "Sistema"
|
||||
IDS_DISPLAY_DIALOG "Display"
|
||||
IDS_SOUND_DIALOG "Suoni"
|
||||
IDS_MUSIC_DIALOG "Musica"
|
||||
IDS_INPUT_DIALOG "Input"
|
||||
IDS_NETWORK_DIALOG "Network"
|
||||
IDS_HELP_DIALOG "Aiuto"
|
||||
IDS_FORMAT_MB "%I64uMB RAM"
|
||||
IDS_FORMAT_SWAP "%I64u MB utilizzata, %I64u MB avviabile"
|
||||
IDS_FORMAT_UNIPROC "%s (%u CPU)"
|
||||
IDS_FORMAT_MPPROC "%s (%u CPUs)"
|
||||
IDS_VERSION_UNKNOWN "Versione Sconosciuta"
|
||||
IDS_DEVICE_STATUS_ATTACHED "Connesso"
|
||||
IDS_DEVICE_STATUS_MISSING "Disconnesso"
|
||||
IDS_DEVICE_STATUS_UNKNOWN "Sconosciuto"
|
||||
IDS_DEVICE_NAME "Nome Device"
|
||||
IDS_DEVICE_STATUS "Stato"
|
||||
IDS_DEVICE_CONTROLLER "Controller ID"
|
||||
IDS_DEVICE_MANUFACTURER "Manufacturer ID"
|
||||
IDS_DEVICE_PRODUCT "Product ID"
|
||||
IDS_DEVICE_FORCEFEEDBACK "Forza Feedback-Driver"
|
||||
IDS_NOT_APPLICABLE "Non applicabile"
|
||||
IDS_OPTION_YES "Si"
|
||||
IDS_DIRECTPLAY_COL_NAME1 "Nome"
|
||||
IDS_DIRECTPLAY_COL_NAME2 "Registro"
|
||||
IDS_DIRECTPLAY_COL_NAME3 "File"
|
||||
IDS_DIRECTPLAY_COL_NAME4 "Versione"
|
||||
IDS_DIRECTPLAY8_MODEMSP "DirectPlay8-Modem Service Provider"
|
||||
IDS_DIRECTPLAY8_SERIALSP "DirectPlay8 Serial Service Provider"
|
||||
IDS_DIRECTPLAY8_IPXSP "DirectPlay8 IPX Service Provider"
|
||||
IDS_DIRECTPLAY8_TCPSP "DirectPlay8-TCP/IP Service Provider"
|
||||
IDS_DIRECTPLAY_TCPCONN "Connessione Internet TCP/IP per DirectPlay"
|
||||
IDS_DIRECTPLAY_IPXCONN "Connessione IPX per DirectPlay"
|
||||
IDS_DIRECTPLAY_MODEMCONN "Connessione Modem per DirectPlay"
|
||||
IDS_DIRECTPLAY_SERIALCONN "Connessione seriale per DirectPlay"
|
||||
IDS_REG_SUCCESS "OK"
|
||||
IDS_REG_FAIL "Errore"
|
||||
IDS_DDTEST_ERROR "Test fallito!"
|
||||
IDS_DDTEST_DESCRIPTION "Questo avvierà il controllo dell'interfaccia DirectDraw. Continuare?"
|
||||
IDS_DDPRIMARY_DESCRIPTION "Questo test utilizza DirectDraw per disegnare sulla superficie primaria. Rettangoli in bianco e nero devono essere compilati. Continuare?"
|
||||
IDS_DDPRIMARY_RESULT "Hai visto rettangoli bianchi e neri?"
|
||||
IDS_DDOFFSCREEN_DESCRIPTION "Questo test utilizza DirectDraw per disegnare buffer fuori schermo. Spostameni rettangolo bianco devono essere compilati. Continuare?"
|
||||
IDS_DDOFFSCREEN_RESULT "Hai visto il rettangolo bianco muoversi?"
|
||||
IDS_DDFULLSCREEN_DESCRIPTION "Questo test utilizza DirectDraw per disegnare in una modalità schermo intero. I Spostamenti del rettangolo bianco devono essere compilati. Continuare?"
|
||||
IDS_DDFULLSCREEN_RESULT "Hai visto un rettangolo bianco in movimento in modalità schermo intero?"
|
||||
IDS_FORMAT_ADAPTER_MEM "%u MB"
|
||||
IDS_FORMAT_ADAPTER_MODE "%04u x %04u (%u bit)(%uHz)"
|
||||
IDS_OPTION_NO "No"
|
||||
IDS_D3DTEST_DESCRIPTION "Avviare il test dell'interfaccia Direct3D. Continuare?"
|
||||
IDS_D3DTEST_D3Dx "Questo test utilizza accelerazione hardware dell'interfaccia Direct3D % u."
|
||||
END
|
|
@ -22,6 +22,9 @@
|
|||
#ifdef LANGUAGE_HE_IL
|
||||
#include "lang/he-IL.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_IT_IT
|
||||
#include "lang/it-IT.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_JA_JP
|
||||
#include "lang/ja-JP.rc"
|
||||
#endif
|
||||
|
@ -34,12 +37,6 @@
|
|||
#ifdef LANGUAGE_NB_NO
|
||||
#include "lang/no-NO.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_SK_SK
|
||||
#include "lang/sk-SK.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_SV_SE
|
||||
#include "lang/sv-SE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_PL_PL
|
||||
#include "lang/pl-PL.rc"
|
||||
#endif
|
||||
|
@ -52,12 +49,18 @@
|
|||
#ifdef LANGUAGE_RU_RU
|
||||
#include "lang/ru-RU.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "lang/uk-UA.rc"
|
||||
#ifdef LANGUAGE_SK_SK
|
||||
#include "lang/sk-SK.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_SV_SE
|
||||
#include "lang/sv-SE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "lang/uk-UA.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_ZH_CN
|
||||
#include "lang/zh-CN.rc"
|
||||
#endif
|
||||
|
|
|
@ -39,6 +39,9 @@ END
|
|||
#ifdef LANGUAGE_HE_IL
|
||||
#include "lang/he-IL.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_IT_IT
|
||||
#include "lang/it-IT.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_LT_LT
|
||||
#include "lang/lt-LT.rc"
|
||||
#endif
|
||||
|
|
13
base/applications/fontview/lang/it-IT.rc
Normal file
13
base/applications/fontview/lang/it-IT.rc
Normal file
|
@ -0,0 +1,13 @@
|
|||
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_INSTALL, "Installa"
|
||||
IDS_PRINT, "Stampa"
|
||||
IDS_STRING, ""
|
||||
IDS_OPEN, "Open Font..."
|
||||
IDS_ERROR, "Errore"
|
||||
IDS_ERROR_NOMEM, "Memoria insufficiente per completare l'operazione."
|
||||
IDS_ERROR_NOFONT, "Il file% 1 non è un file di origine valido."
|
||||
IDS_ERROR_NOCLASS, "Impossibile avviare la classe."
|
||||
END
|
|
@ -19,8 +19,8 @@ BEGIN
|
|||
AUTORADIOBUTTON "1 枚ずつ取る(&O)", IDC_OPT_DRAWONE, 14, 19, 70, 10, WS_GROUP | WS_TABSTOP
|
||||
AUTORADIOBUTTON "3 枚ずつ取る(&T)", IDC_OPT_DRAWTHREE, 14, 32, 70, 10
|
||||
|
||||
AUTOCHECKBOX "時間を表 示する(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
|
||||
AUTOCHECKBOX "ステータスバーを表 示する(&T)", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
|
||||
AUTOCHECKBOX "時間を表示する(&S)", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP | WS_DISABLED
|
||||
AUTOCHECKBOX "ステータスバーを表示する(&T)", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
|
||||
PUSHBUTTON "キャンセル", IDCANCEL, 101, 97, 50, 14
|
||||
|
@ -53,8 +53,8 @@ END
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SOL_NAME "ソ リティア"
|
||||
IDS_SOL_ABOUT "J Brown によるソ リティア\n\nCardLib バージョン 1.0。"
|
||||
IDS_SOL_NAME "ソリティア"
|
||||
IDS_SOL_ABOUT "J Brown によるソリティア\n\nCardLib バージョン 1.0。"
|
||||
IDS_SOL_QUIT "現在のゲームを終了しますか?"
|
||||
IDS_SOL_WIN "おめでとう、あなたの勝ちです!"
|
||||
IDS_SOL_DEAL "もう一度カードを配りますか?"
|
||||
|
|
|
@ -71,14 +71,14 @@ BEGIN
|
|||
BEGIN
|
||||
MENUITEM "&Dağıt\tF2", IDM_GAME_NEW
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "D&esteler", IDM_GAME_DECK
|
||||
MENUITEM "&Ayarlar", IDM_GAME_OPTIONS
|
||||
MENUITEM "D&esteler...", IDM_GAME_DECK
|
||||
MENUITEM "&Ayarlar...", IDM_GAME_OPTIONS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Çıkış", IDM_GAME_EXIT
|
||||
END
|
||||
POPUP "&Yardım"
|
||||
BEGIN
|
||||
MENUITEM "&İçerik\tF1", IDM_HELP_CONTENTS
|
||||
MENUITEM "&Yardım Konuları\tF1", IDM_HELP_CONTENTS
|
||||
MENUITEM "&Hakkında", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
|
|
@ -49,7 +49,7 @@ END
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_SPI_NAME "スパイダ"
|
||||
IDS_SPI_ABOUT "Gregor Schneider によるスパイダ ソ リティア\n\nCardLib バージョン 1.0"
|
||||
IDS_SPI_ABOUT "Gregor Schneider によるスパイダ ソリティア\n\nCardLib バージョン 1.0"
|
||||
IDS_SPI_QUIT "現在のゲームを終了しますか?"
|
||||
IDS_SPI_WIN "おめでとう、あなたの勝ちです!"
|
||||
IDS_SPI_DEAL "もう一度カードを配りますか?"
|
||||
|
|
|
@ -64,13 +64,13 @@ BEGIN
|
|||
BEGIN
|
||||
MENUITEM "&Yeni oyun\tF2", IDM_GAME_NEW
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Desteler", IDM_GAME_DECK
|
||||
MENUITEM "&Desteler...", IDM_GAME_DECK
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Çıkış", IDM_GAME_EXIT
|
||||
END
|
||||
POPUP "&Yardım"
|
||||
BEGIN
|
||||
MENUITEM "&İçerik\tF1", IDM_HELP_CONTENTS
|
||||
MENUITEM "&Yardım Konuları\tF1", IDM_HELP_CONTENTS
|
||||
MENUITEM "&Hakkında", IDM_HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE BEGIN
|
||||
IDS_APPNAME, "Wine Mayın Tarlası"
|
||||
IDS_APPNAME, "Mayın Tarlası"
|
||||
IDS_NOBODY, "Hiç kimse"
|
||||
IDS_ABOUT, "Telif hakkı: Joshua Thielen, 2000"
|
||||
END
|
||||
|
@ -31,20 +31,20 @@ END
|
|||
MENU_WINEMINE MENU
|
||||
BEGIN
|
||||
POPUP "&Seçenekler" BEGIN
|
||||
MENUITEM "&Yeni\tF2", IDM_NEW
|
||||
MENUITEM "&Yeni\tF2", IDM_NEW
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Soru İmi", IDM_MARKQ
|
||||
MENUITEM "&Soru İmi", IDM_MARKQ
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Başlangıç", IDM_BEGINNER
|
||||
MENUITEM "&Orta", IDM_ADVANCED
|
||||
MENUITEM "&İleri", IDM_EXPERT
|
||||
MENUITEM "&Özel", IDM_CUSTOM
|
||||
MENUITEM "&Başlangıç", IDM_BEGINNER
|
||||
MENUITEM "&Orta", IDM_ADVANCED
|
||||
MENUITEM "&İleri", IDM_EXPERT
|
||||
MENUITEM "&Özel...", IDM_CUSTOM
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Çıkış\tAlt+X", IDM_EXIT
|
||||
MENUITEM "&Çıkış\tAlt+X", IDM_EXIT
|
||||
END
|
||||
POPUP "&Bilgi" BEGIN
|
||||
MENUITEM "&En Kısa Süreler", IDM_TIMES
|
||||
MENUITEM "&Hakkında", IDM_ABOUT
|
||||
MENUITEM "&En Kısa Süreler...", IDM_TIMES
|
||||
MENUITEM "&Hakkında", IDM_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@ STRINGTABLE DISCARDABLE
|
|||
BEGIN
|
||||
|
||||
IDS_USAGE, "セッションを終了します。\n\n\
|
||||
/v\t\t実行中に詳細情報を表 示します。\n\
|
||||
/?\t\tこの情報を表 示します。\n\n"
|
||||
/v\t\t実行中に詳細情報を表示します。\n\
|
||||
/?\t\tこの情報を表示します。\n\n"
|
||||
|
||||
IDS_LOGOFF_REMOTE, "リモート マシンのセッションを終了しています。"
|
||||
IDS_LOGOFF_LOCAL, "このマシンの現在のセッションを終了しています。"
|
||||
|
|
72
base/applications/magnify/lang/tr-TR.rc
Normal file
72
base/applications/magnify/lang/tr-TR.rc
Normal file
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
* PROJECT: ReactOS Magnifier
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* FILE: base/applications/magnify/lang/tr-TR.rc
|
||||
* PURPOSE: Turkish Language File for Magnifier
|
||||
* TRANSLATOR: 2013 - Erdem Ersoy (eersoy93)
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
IDC_MAGNIFIER MENU
|
||||
BEGIN
|
||||
POPUP "&Seçke"
|
||||
BEGIN
|
||||
MENUITEM "&Çıkış", IDM_EXIT
|
||||
MENUITEM "&Ayarlar...", IDM_OPTIONS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Hakkında", IDM_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
IDC_MAGNIFIER ACCELERATORS
|
||||
BEGIN
|
||||
"?", IDM_ABOUT, ASCII, ALT
|
||||
"/", IDM_ABOUT, ASCII, ALT
|
||||
END
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Hakkında"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
ICON IDI_ICON,IDC_MYICON,14,9,20,20
|
||||
LTEXT "Büyüteç: Sürüm 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX
|
||||
LTEXT "Telif Hakkı: 2007 - Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22
|
||||
PUSHBUTTON "Tamam",IDOK,162,48,50,14
|
||||
END
|
||||
|
||||
IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Büyüteç Ayarları"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Çıkış",IDOK,96,161,50,14
|
||||
PUSHBUTTON "Yardım",IDC_BUTTON_HELP,38,161,50,14
|
||||
LTEXT "Büyütme düzeyi:",IDC_STATIC,6,8,68,8
|
||||
COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
GROUPBOX "İzleme",IDC_STATIC,7,25,139,59
|
||||
GROUPBOX "Sunum",IDC_STATIC,7,87,139,57
|
||||
CONTROL "Fare imlecini takip et",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10
|
||||
CONTROL "Düğme takımı odağını izle",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,114,10
|
||||
CONTROL "Metin düzenlemesini izle",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10
|
||||
CONTROL "Renkleri ters çevir",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10
|
||||
CONTROL "Simge durumunda başlat",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10
|
||||
CONTROL "Büyüteci göster",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10
|
||||
END
|
||||
|
||||
IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION
|
||||
CAPTION "ReactOS Büyüteç"
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Tamam",IDOK,193,76,50,14
|
||||
ICON IDI_ICON,IDC_STATIC,7,17,20,20
|
||||
LTEXT "Büyüteç, hafif görme engelli kullanıcıların en az çaba harcamaları için tasarlanmıştır. Görme engelli bir çok kullanıcı, günlük kullanım için bu aracı kullanmaya gereksinim duyacaktır.",IDC_STATIC,36,7,207,33
|
||||
CONTROL "Bunu bir daha gösterme",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APP_TITLE "Büyüteç"
|
||||
END
|
|
@ -46,6 +46,9 @@
|
|||
#ifdef LANGUAGE_SV_SE
|
||||
#include "lang/sv-SE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "lang/uk-UA.rc"
|
||||
#endif
|
||||
|
|
30
base/applications/mplay32/lang/tr-TR.rc
Normal file
30
base/applications/mplay32/lang/tr-TR.rc
Normal file
|
@ -0,0 +1,30 @@
|
|||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
IDR_MAINMENU MENU
|
||||
BEGIN
|
||||
POPUP "&Kütük"
|
||||
BEGIN
|
||||
MENUITEM "&Aç...", IDM_OPEN_FILE
|
||||
MENUITEM "&Kapat", IDM_CLOSE_FILE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Çıkış", IDM_EXIT
|
||||
END
|
||||
POPUP "&Yardım"
|
||||
BEGIN
|
||||
MENUITEM "&Hakkında", IDM_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_ALL_TYPES_FILTER "Tüm Desteklenen Dosyalar (*.wav, *.cda, *.mid, *.midi, *.avi)\0*.wav;*.cda;*.mid;*.midi;*.avi\0"
|
||||
IDS_TOOLTIP_PLAY "Çal"
|
||||
IDS_TOOLTIP_STOP "Durdur"
|
||||
IDS_TOOLTIP_EJECT "Çıkar"
|
||||
IDS_TOOLTIP_BACKWARD "Bir Önceki"
|
||||
IDS_TOOLTIP_SEEKBACK "Geri Sar"
|
||||
IDS_TOOLTIP_SEEKFORW "İleri Sar"
|
||||
IDS_TOOLTIP_FORWARD "Bir Sonraki"
|
||||
IDS_APPTITLE "ReactOS Çokluortam Oynatıcısı"
|
||||
IDS_PLAY "Çal"
|
||||
END
|
|
@ -51,6 +51,9 @@
|
|||
#ifdef LANGUAGE_SV_SE
|
||||
#include "lang/sv-SE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "lang/uk-UA.rc"
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||
|
||||
IDR_MAINMENU MENU
|
||||
BEGIN
|
||||
|
@ -14,12 +14,12 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "ヘルプ", IDC_PROGHELP, GRAYED
|
||||
END
|
||||
POPUP "表 示"
|
||||
POPUP "表示"
|
||||
BEGIN
|
||||
MENUITEM "デバイス (種類別)", IDC_DEVBYTYPE
|
||||
MENUITEM "デバイス (接続別)", IDC_DEVBYCONN
|
||||
MENUITEM "リソ ース (種類別)", IDC_RESBYTYPE, GRAYED
|
||||
MENUITEM "リソ ース (接続別)", IDC_RESBYCONN, GRAYED
|
||||
MENUITEM "リソース (種類別)", IDC_RESBYTYPE, GRAYED
|
||||
MENUITEM "リソース (接続別)", IDC_RESBYCONN, GRAYED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Show hidden devices", IDC_SHOWHIDDEN
|
||||
END
|
||||
|
@ -72,8 +72,8 @@ BEGIN
|
|||
IDS_HINT_EXIT " このプログラムを終了します。"
|
||||
IDS_HINT_REFRESH " サービスのリストを更新します。"
|
||||
IDS_HINT_PROP " 現在選択されているシートのプロパティを開きます。"
|
||||
IDS_HINT_HELP " ヘルプ ウィンドウを表 示します。"
|
||||
IDS_HINT_ABOUT " ReactOS デバイス マネージャについて表 示します。"
|
||||
IDS_HINT_HELP " ヘルプ ウィンドウを表示します。"
|
||||
IDS_HINT_ABOUT " ReactOS デバイス マネージャについて表示します。"
|
||||
|
||||
IDS_HINT_SYS_RESTORE " このウィンドウを通常の大きさに復元します。"
|
||||
IDS_HINT_SYS_MOVE " このウィンドウを移動します。"
|
||||
|
|
|
@ -18,7 +18,7 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "終了(&X)", IDM_EXIT
|
||||
END
|
||||
POPUP "表 示(&V)"
|
||||
POPUP "表示(&V)"
|
||||
BEGIN
|
||||
MENUITEM "更新(&R)", IDM_REFRESH
|
||||
END
|
||||
|
@ -78,7 +78,7 @@ BEGIN
|
|||
LTEXT "Static",IDC_EVENTCOMPUTERSTATIC,56,54,72,8
|
||||
LTEXT "イベントID:",IDC_STATIC,133,15,36,8
|
||||
LTEXT "Static",IDC_EVENTIDSTATIC,175,15,87,8
|
||||
LTEXT "ソ ース:",IDC_STATIC,133,28,36,8
|
||||
LTEXT "ソース:",IDC_STATIC,133,28,36,8
|
||||
LTEXT "Static",IDC_EVENTSOURCESTATIC,175,28,87,8
|
||||
LTEXT "種類:",IDC_STATIC,133,42,36,8
|
||||
LTEXT "Static",IDC_EVENTTYPESTATIC,175,42,87,8
|
||||
|
@ -93,7 +93,7 @@ END
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APP_TITLE "イベント ビューア"
|
||||
IDS_EVENTSTRINGIDNOTFOUND "イベント ID (%lu) (ソ ース %s 内) に関する説明が見つかりませんでした。 リモート コンピュータからメッセージを表 示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能 性があります。"
|
||||
IDS_EVENTSTRINGIDNOTFOUND "イベント ID (%lu) (ソース %s 内) に関する説明が見つかりませんでした。 リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。"
|
||||
IDS_EVENTLOG_ERROR_TYPE "エラー"
|
||||
IDS_EVENTLOG_WARNING_TYPE "警告"
|
||||
IDS_EVENTLOG_INFORMATION_TYPE "情報"
|
||||
|
|
|
@ -26,7 +26,7 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "プロパティ...", ID_PROP, GRAYED
|
||||
END
|
||||
POPUP "表 示"
|
||||
POPUP "表示"
|
||||
BEGIN
|
||||
MENUITEM "大きいアイコン", ID_VIEW_LARGE
|
||||
MENUITEM "小さいアイコン", ID_VIEW_SMALL
|
||||
|
@ -89,7 +89,7 @@ BEGIN
|
|||
PUSHBUTTON "一時停止", IDC_PAUSE , 130, 155, 54, 15, WS_DISABLED
|
||||
PUSHBUTTON "再開", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED
|
||||
LTEXT "サービス名:", IDC_STATIC, 4, 11, 53, 11
|
||||
LTEXT "表 示名:", IDC_STATIC, 4, 29, 53, 11
|
||||
LTEXT "表示名:", IDC_STATIC, 4, 29, 53, 11
|
||||
LTEXT "説明:", IDC_STATIC, 4, 51, 53, 11
|
||||
LTEXT "実行ファイルのパス:", IDC_STATIC, 6, 73, 82, 9
|
||||
LTEXT "スタートアップの種類:", IDC_STATIC, 6, 108, 53, 11
|
||||
|
@ -124,7 +124,7 @@ BEGIN
|
|||
EDITTEXT IDC_CREATE_DESC, 10, 97, 210, 48, WS_CHILD | WS_VISIBLE
|
||||
EDITTEXT IDC_CREATE_OPTIONS, 10, 162, 210, 13, WS_CHILD | WS_VISIBLE
|
||||
LTEXT "*サービス名 :", IDC_STATIC, 12, 12, 54, 9
|
||||
LTEXT "*表 示名 :", IDC_STATIC, 12, 33, 54, 9
|
||||
LTEXT "*表示名 :", IDC_STATIC, 12, 33, 54, 9
|
||||
LTEXT "*実行ファイルのパス :", IDC_STATIC, 10, 51, 68, 9
|
||||
LTEXT "説明 :", IDC_STATIC, 12, 86, 44, 9
|
||||
PUSHBUTTON "OK", IDOK, 126, 192, 44, 13
|
||||
|
@ -258,14 +258,14 @@ BEGIN
|
|||
IDS_HINT_DELETE " 選択したサービスを削除します。"
|
||||
IDS_HINT_PROP " 現在選択されている項目のプロパティ シートを開きます。"
|
||||
|
||||
IDS_HINT_LARGE " アイテムを大きいアイコンで表 示します。"
|
||||
IDS_HINT_SMALL " アイテムを小さいアイコンで表 示します。"
|
||||
IDS_HINT_LIST " アイテムを一覧で表 示します。"
|
||||
IDS_HINT_DETAILS " 各アイテムの情報をウィンドウに表 示します。"
|
||||
IDS_HINT_CUST " 表 示をカスタマイズします。"
|
||||
IDS_HINT_LARGE " アイテムを大きいアイコンで表示します。"
|
||||
IDS_HINT_SMALL " アイテムを小さいアイコンで表示します。"
|
||||
IDS_HINT_LIST " アイテムを一覧で表示します。"
|
||||
IDS_HINT_DETAILS " 各アイテムの情報をウィンドウに表示します。"
|
||||
IDS_HINT_CUST " 表示をカスタマイズします。"
|
||||
|
||||
IDS_HINT_HELP " ヘルプ ウィンドウを表 示します。"
|
||||
IDS_HINT_ABOUT " ReactOS サービス マネージャについて表 示します。"
|
||||
IDS_HINT_HELP " ヘルプ ウィンドウを表示します。"
|
||||
IDS_HINT_ABOUT " ReactOS サービス マネージャについて表示します。"
|
||||
|
||||
IDS_HINT_SYS_RESTORE " このウィンドウを通常の大きさに復元します。"
|
||||
IDS_HINT_SYS_MOVE " このウィンドウを移動します。"
|
||||
|
|
|
@ -17,8 +17,8 @@ BEGIN
|
|||
MENUITEM "上書き保存(&S)\tCtrl+S", IDM_FILESAVE
|
||||
MENUITEM "名前を付けて保存(&A)...", IDM_FILESAVEAS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "背景に設定 (並べて表 示)", IDM_FILEASWALLPAPERPLANE
|
||||
MENUITEM "背景に設定 (中央に表 示)", IDM_FILEASWALLPAPERCENTERED
|
||||
MENUITEM "背景に設定 (並べて表示)", IDM_FILEASWALLPAPERPLANE
|
||||
MENUITEM "背景に設定 (中央に表示)", IDM_FILEASWALLPAPERCENTERED
|
||||
MENUITEM "背景に設定 (拡大)", IDM_FILEASWALLPAPERSTRETCHED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "ペイントの終了(&Q)\tAlt+F4", IDM_FILEEXIT
|
||||
|
@ -31,16 +31,16 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "切り取り\tCtrl+X", IDM_EDITCUT
|
||||
MENUITEM "コピー\tCtrl+C", IDM_EDITCOPY
|
||||
MENUITEM "貼 り付け\tCtrl+V", IDM_EDITPASTE
|
||||
MENUITEM "貼り付け\tCtrl+V", IDM_EDITPASTE
|
||||
MENUITEM "選択範囲の削除\tDel", IDM_EDITDELETESELECTION
|
||||
MENUITEM "選択範囲の挿入", IDM_EDITINVERTSELECTION
|
||||
MENUITEM "すべて選択\tCtrl+A", IDM_EDITSELECTALL
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "ファイルへコピー", IDM_EDITCOPYTO
|
||||
MENUITEM "ファイルから貼 り付け", IDM_EDITPASTEFROM
|
||||
MENUITEM "ファイルから貼り付け", IDM_EDITPASTEFROM
|
||||
END
|
||||
|
||||
POPUP "表 示(&V)"
|
||||
POPUP "表示(&V)"
|
||||
BEGIN
|
||||
MENUITEM "ツール ボックス\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED
|
||||
MENUITEM "カラー パレット\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED
|
||||
|
@ -60,10 +60,10 @@ BEGIN
|
|||
MENUITEM "800%", IDM_VIEWZOOM800
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "グリッドを表 示\tCtrl+G", IDM_VIEWSHOWGRID
|
||||
MENUITEM "実寸表 示", IDM_VIEWSHOWMINIATURE
|
||||
MENUITEM "グリッドを表示\tCtrl+G", IDM_VIEWSHOWGRID
|
||||
MENUITEM "実寸表示", IDM_VIEWSHOWMINIATURE
|
||||
END
|
||||
MENUITEM "全画面表 示\tCtrl+F", IDM_VIEWFULLSCREEN
|
||||
MENUITEM "全画面表示\tCtrl+F", IDM_VIEWFULLSCREEN
|
||||
END
|
||||
|
||||
POPUP "画像(&I)"
|
||||
|
@ -179,7 +179,7 @@ BEGIN
|
|||
IDS_PROGRAMNAME, "ペイント"
|
||||
IDS_WINDOWTITLE, "%s - ペイント"
|
||||
IDS_INFOTITLE, "ReactOS ペイント"
|
||||
IDS_INFOTEXT, "ReactOS ペイントは GNU Lesser General Public License (LGPL) version 3 (詳細は www.gnu.org)の下で利用可能 です。"
|
||||
IDS_INFOTEXT, "ReactOS ペイントは GNU Lesser General Public License (LGPL) version 3 (詳細は www.gnu.org)の下で利用可能です。"
|
||||
IDS_SAVEPROMPTTEXT, "%s の変更内容を保存しますか?"
|
||||
IDS_DEFAULTFILENAME, "無題.bmp"
|
||||
IDS_MINIATURETITLE, "縮小図"
|
||||
|
|
206
base/applications/mspaint/lang/tr-TR.rc
Normal file
206
base/applications/mspaint/lang/tr-TR.rc
Normal file
|
@ -0,0 +1,206 @@
|
|||
/*
|
||||
* PROJECT: PAINT for ReactOS
|
||||
* LICENSE: unknown (LGPL assumed)
|
||||
* FILE: base/applications/mspaint/lang/tr-TR.rc
|
||||
* PURPOSE: Turkish Language resource file
|
||||
* TRANSLATORS: 2013 - Erdem Ersoy (eersoy93)
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
ID_MENU MENU
|
||||
BEGIN
|
||||
POPUP "&Kütük"
|
||||
BEGIN
|
||||
MENUITEM "&Yeni\tCtrl+N", IDM_FILENEW
|
||||
MENUITEM "&Aç...\tCtrl+O", IDM_FILEOPEN
|
||||
MENUITEM "&Kaydet\tCtrl+S", IDM_FILESAVE
|
||||
MENUITEM "Ay&rı Kaydet...", IDM_FILESAVEAS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Döşeyerek Duvar Kağıdı Yap", IDM_FILEASWALLPAPERPLANE
|
||||
MENUITEM "Ortalayarak Duvar Kağıdı Yap", IDM_FILEASWALLPAPERCENTERED
|
||||
MENUITEM "Uzatarak Duvar Kağıdı Yap", IDM_FILEASWALLPAPERSTRETCHED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Çıkış\tAlt+F4", IDM_FILEEXIT
|
||||
END
|
||||
|
||||
POPUP "&Düzen"
|
||||
BEGIN
|
||||
MENUITEM "Geri Al\tCtrl+Z", IDM_EDITUNDO
|
||||
MENUITEM "Yinele\tCtrl+Y", IDM_EDITREDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Kes\tCtrl+X", IDM_EDITCUT
|
||||
MENUITEM "Çoğalt\tCtrl+C", IDM_EDITCOPY
|
||||
MENUITEM "Yapıştır\tCtrl+V", IDM_EDITPASTE
|
||||
MENUITEM "Seçimi Sil\tDel", IDM_EDITDELETESELECTION
|
||||
MENUITEM "Seçimi Evir", IDM_EDITINVERTSELECTION
|
||||
MENUITEM "Hepsini Seç\tCtrl+A", IDM_EDITSELECTALL
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Seçimi Şuraya Kopyala...", IDM_EDITCOPYTO
|
||||
MENUITEM "Şuradan Yapıştır...", IDM_EDITPASTEFROM
|
||||
END
|
||||
|
||||
POPUP "&Görünüm"
|
||||
BEGIN
|
||||
MENUITEM "Araç Çubuğu\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED
|
||||
MENUITEM "Renklik\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED
|
||||
MENUITEM "Durum Çubuğu", IDM_VIEWSTATUSBAR, CHECKED
|
||||
MENUITEM "Metin Çubuğu", IDM_FORMATICONBAR, CHECKED, GRAYED
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "Büyüt"
|
||||
BEGIN
|
||||
POPUP "Kullanıcı Tanımlı"
|
||||
BEGIN
|
||||
MENUITEM "%12,5", IDM_VIEWZOOM125
|
||||
MENUITEM "%25", IDM_VIEWZOOM25
|
||||
MENUITEM "%50", IDM_VIEWZOOM50
|
||||
MENUITEM "%100", IDM_VIEWZOOM100
|
||||
MENUITEM "%200", IDM_VIEWZOOM200
|
||||
MENUITEM "%400", IDM_VIEWZOOM400
|
||||
MENUITEM "%800", IDM_VIEWZOOM800
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Kılavuzu Göster\tCtrl+G", IDM_VIEWSHOWGRID
|
||||
MENUITEM "Küçüğünü Göster", IDM_VIEWSHOWMINIATURE
|
||||
END
|
||||
MENUITEM "Tam Ekran\tCtrl+F", IDM_VIEWFULLSCREEN
|
||||
END
|
||||
|
||||
POPUP "G&örüntü"
|
||||
BEGIN
|
||||
MENUITEM "Döndür ya da Çevir...\tCtrl+R", IDM_IMAGEROTATEMIRROR
|
||||
MENUITEM "Boyutlandır...\tCtrl+W", IDM_IMAGECHANGESIZE
|
||||
MENUITEM "Kırp", IDM_IMAGECROP
|
||||
MENUITEM "Renkleri Evir...\tCtrl+I", IDM_IMAGEINVERTCOLORS
|
||||
MENUITEM "Öznitelikler\tCtrl+E", IDM_IMAGEATTRIBUTES
|
||||
MENUITEM "Resmi Temizle\tCtrl+Shft+N", IDM_IMAGEDELETEIMAGE
|
||||
MENUITEM "Donuk Çiz", IDM_IMAGEDRAWOPAQUE
|
||||
END
|
||||
|
||||
POPUP "R&enkler"
|
||||
BEGIN
|
||||
MENUITEM "Renkliği Düzenle...", IDM_COLORSEDITPALETTE
|
||||
END
|
||||
|
||||
POPUP "&Yardım"
|
||||
BEGIN
|
||||
MENUITEM "Yardım Konuları", IDM_HELPHELPTOPICS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Hakkında", IDM_HELPINFO
|
||||
END
|
||||
END
|
||||
|
||||
ID_ACCELERATORS ACCELERATORS
|
||||
BEGIN
|
||||
"^N", IDM_FILENEW
|
||||
"^O", IDM_FILEOPEN
|
||||
"^S", IDM_FILESAVE
|
||||
"^Z", IDM_EDITUNDO
|
||||
"^Y", IDM_EDITREDO
|
||||
"^X", IDM_EDITCUT
|
||||
"^C", IDM_EDITCOPY
|
||||
"^V", IDM_EDITPASTE
|
||||
VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY
|
||||
"^A", IDM_EDITSELECTALL
|
||||
"^T", IDM_VIEWTOOLBOX
|
||||
"^L", IDM_VIEWCOLORPALETTE
|
||||
"^G", IDM_VIEWSHOWGRID
|
||||
"^F", IDM_VIEWFULLSCREEN
|
||||
"^R", IDM_IMAGEROTATEMIRROR
|
||||
"^W", IDM_IMAGECHANGESIZE
|
||||
"^I", IDM_IMAGEINVERTCOLORS
|
||||
"^E", IDM_IMAGEATTRIBUTES
|
||||
"N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY
|
||||
END
|
||||
|
||||
IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "MS Shell Dlg"
|
||||
CAPTION "Resmi Döndür ya da Çevir"
|
||||
BEGIN
|
||||
GROUPBOX "Döndür ya da Çevir", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86
|
||||
AUTORADIOBUTTON "Yatay Çevir", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP
|
||||
AUTORADIOBUTTON "Dikey Çevir", IDD_MIRRORROTATERB2, 12, 30, 100, 10
|
||||
AUTORADIOBUTTON "Açıyla Çevir", IDD_MIRRORROTATERB3, 12, 42, 100, 10
|
||||
AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED
|
||||
AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED
|
||||
AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED
|
||||
DEFPUSHBUTTON "Tamam", IDOK, 125, 8, 48, 14
|
||||
PUSHBUTTON "Vazgeç", IDCANCEL, 125, 24, 48, 14
|
||||
END
|
||||
|
||||
IDD_ATTRIBUTES DIALOGEX 100, 100, 225, 120
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "MS Shell Dlg"
|
||||
CAPTION "Öznitelikler"
|
||||
BEGIN
|
||||
EDITTEXT IDD_ATTRIBUTESEDIT1, 48, 40, 35, 12
|
||||
EDITTEXT IDD_ATTRIBUTESEDIT2, 128, 40, 35, 12
|
||||
LTEXT "En:", IDD_ATTRIBUTESTEXT1, 10, 40, 35, 10
|
||||
LTEXT "Boy:", IDD_ATTRIBUTESTEXT2, 90, 40, 35, 10
|
||||
LTEXT "Kütüğün Zamanı:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10
|
||||
LTEXT "Kütüğün Boyutu:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10
|
||||
LTEXT "Çözünürlük:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10
|
||||
LTEXT "(Daha yok.)", IDD_ATTRIBUTESTEXT6, 60, 5, 90, 10
|
||||
LTEXT "(Daha yok.)", IDD_ATTRIBUTESTEXT7, 60, 15, 90, 10
|
||||
LTEXT "(Daha yok.)", IDD_ATTRIBUTESTEXT8, 60, 25, 90, 10
|
||||
GROUPBOX "Birim", IDD_ATTRIBUTESGROUP1, 6, 57, 158, 27
|
||||
AUTORADIOBUTTON "İnç", IDD_ATTRIBUTESRB1, 12, 69, 45, 10, WS_GROUP
|
||||
AUTORADIOBUTTON "cm", IDD_ATTRIBUTESRB2, 62, 69, 45, 10
|
||||
AUTORADIOBUTTON "Nokta", IDD_ATTRIBUTESRB3, 112, 69, 45, 10
|
||||
GROUPBOX "Renkler", IDD_ATTRIBUTESGROUP2, 6, 88, 158, 27
|
||||
AUTORADIOBUTTON "Siyah-beyaz", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP
|
||||
AUTORADIOBUTTON "Renkli", IDD_ATTRIBUTESRB5, 92, 100, 35, 10
|
||||
DEFPUSHBUTTON "Tamam", IDOK, 170, 8, 48, 14
|
||||
PUSHBUTTON "Vazgeç", IDCANCEL, 170, 24, 48, 14
|
||||
PUSHBUTTON "Öntanımlı", IDD_ATTRIBUTESSTANDARD, 170, 40, 48, 14
|
||||
END
|
||||
|
||||
IDD_CHANGESIZE DIALOGEX 100, 100, 225, 80
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "MS Shell Dlg"
|
||||
CAPTION "Boyutlandır"
|
||||
BEGIN
|
||||
GROUPBOX "Boyutlandır", IDD_CHANGESIZEGROUP, 6, 6, 158, 66
|
||||
ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18, 32, 32
|
||||
LTEXT "Yatay:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10
|
||||
EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12
|
||||
LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10
|
||||
ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43, 32, 32
|
||||
LTEXT "Dikey:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10
|
||||
EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12
|
||||
LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10
|
||||
DEFPUSHBUTTON "Tamam", IDOK, 170, 8, 48, 14
|
||||
PUSHBUTTON "Vazgeç", IDCANCEL, 170, 24, 48, 14
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_PROGRAMNAME, "Görüntü Düzenleyicisi"
|
||||
IDS_WINDOWTITLE, "%s - Görüntü Düzenleyicisi"
|
||||
IDS_INFOTITLE, "ReactOS için Görüntü Düzenleyicisi"
|
||||
IDS_INFOTEXT, "ReactOS için Görüntü Düzenleyicisi GNU Kısıtlı Genel Kamu Lisansı'nın (LGPL) 3. sürümüyle lisanslıdır. (bk: www.gnu.org)"
|
||||
IDS_SAVEPROMPTTEXT, "%s için yapılan değişiklikler kaydedilsin mi?"
|
||||
IDS_DEFAULTFILENAME, "Adsız.bmp"
|
||||
IDS_MINIATURETITLE, "Küçüğü"
|
||||
IDS_TOOLTIP1, "Özgür Seçim"
|
||||
IDS_TOOLTIP2, "Dikdörtgen Seçim"
|
||||
IDS_TOOLTIP3, "Silgi"
|
||||
IDS_TOOLTIP4, "Boya Kabı"
|
||||
IDS_TOOLTIP5, "Renk Seçici"
|
||||
IDS_TOOLTIP6, "Büyüteç"
|
||||
IDS_TOOLTIP7, "Kalem"
|
||||
IDS_TOOLTIP8, "Fırça"
|
||||
IDS_TOOLTIP9, "Püskürteç"
|
||||
IDS_TOOLTIP10, "Metin"
|
||||
IDS_TOOLTIP11, "Çizgi"
|
||||
IDS_TOOLTIP12, "Kıvrım"
|
||||
IDS_TOOLTIP13, "Dikdörtgen"
|
||||
IDS_TOOLTIP14, "Çokgen"
|
||||
IDS_TOOLTIP15, "Söbek"
|
||||
IDS_TOOLTIP16, "Yuvarlatılmış Dikdörtgen"
|
||||
IDS_OPENFILTER, "Bit Eşlem Görüntüleri (*.bmp;*.dib)\1*.bmp;*.dib\1Tüm Kütükler (*.*)\1*.*\1"
|
||||
IDS_SAVEFILTER, "24-bit Bit Eşlem Görüntüsü(*.bmp;*.dib)\1*.bmp;*.dib\1"
|
||||
IDS_FILESIZE, "%d sekizlik"
|
||||
IDS_PRINTRES, "Her metrekarede %d x %d nokta"
|
||||
END
|
|
@ -86,6 +86,9 @@
|
|||
#ifdef LANGUAGE_SV_SE
|
||||
#include "lang/sv-SE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "lang/uk-UA.rc"
|
||||
#endif
|
||||
|
|
|
@ -27,11 +27,11 @@ BEGIN
|
|||
GROUPBOX "色",IDC_STATIC,7,83,228,85
|
||||
ICON "", IDC_REMICON, 15,19,20,20
|
||||
ICON "", IDC_COLORSICON, 15,98,20,20
|
||||
LTEXT "リモート デスクトップの画面サイズを設定してください。スライダのつまみを右端に動かすと、全画面表 示になります",IDC_STATIC,53,22,175,21
|
||||
LTEXT "リモート デスクトップの画面サイズを設定してください。スライダのつまみを右端に動かすと、全画面表示になります",IDC_STATIC,53,22,175,21
|
||||
CONTROL "", IDC_GEOSLIDER, "msctls_trackbar32", TBS_AUTOTICKS | WS_TABSTOP, 56, 42, 124, 17
|
||||
COMBOBOX IDC_BPPCOMBO,56,102,128,80, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "",IDC_COLORIMAGE,"Static",SS_OWNERDRAW | SS_SUNKEN, 56,121,127,10
|
||||
LTEXT "注意: この設定はリモート コンピュータの設定で上書きされる可能 性があります。",IDC_STATIC,56,143,165,18
|
||||
LTEXT "注意: この設定はリモート コンピュータの設定で上書きされる可能性があります。",IDC_STATIC,56,143,165,18
|
||||
LTEXT "小",IDC_STATIC,35,42,15,8
|
||||
LTEXT "大",IDC_STATIC,189,42,17,8
|
||||
LTEXT "", IDC_SETTINGS_RESOLUTION_TEXT, 56, 62, 120, 10, SS_CENTER
|
||||
|
@ -57,7 +57,7 @@ BEGIN
|
|||
IDS_HIGHCOLOR16 "65,536 色 (16 ビット)"
|
||||
IDS_HIGHCOLOR24 "16,777,216 色 (24 ビット)"
|
||||
IDS_PIXEL "%lu x %lu ピクセル"
|
||||
IDS_FULLSCREEN "全画面表 示"
|
||||
IDS_FULLSCREEN "全画面表示"
|
||||
IDS_BROWSESERVER "<参照...>"
|
||||
IDS_HEADERTEXT1 "リモート デスクトップ"
|
||||
IDS_HEADERTEXT2 "接続"
|
||||
|
|
41
base/applications/network/wlanconf/lang/de-DE.rc
Normal file
41
base/applications/network/wlanconf/lang/de-DE.rc
Normal file
|
@ -0,0 +1,41 @@
|
|||
LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_USAGE, "\nEinen WLAN Adapter konfigurieren.\n\n\
|
||||
WLANCONF [-c SSID [-w WEP] [-a]] [-d] [-s]\n\n\
|
||||
\t-c SSID\t\teine Verbindung mit der angegebenen\n\
|
||||
\t\t\tSSID herstellen \n\
|
||||
\t-w WEP\t\tden zu benutzenden WEP-Schlüssel angeben\n\
|
||||
\t-a\t\tals ad-hoc-Netzwerk konfigurieren\n\
|
||||
\t-d\t\tvom aktuellen Access Point trennen\n\
|
||||
\t-s\t\t scannt nach verfügbaren Access Points\n\
|
||||
\t\t\tin der Nähe.\n\n\
|
||||
Werden keine Parameter angegeben, werden Informationen zur WLAN-Verbindung ausgegeben.\n"
|
||||
/* === */
|
||||
IDS_NO_NETWORK, "Keine Netzwerke gefunden.\n"
|
||||
IDS_NO_WLAN_ADAPTER, "Es konnte kein WLAN Adapter gefunden werden.\n"
|
||||
IDS_SUCCESS, "Die Operation wurde erfolgreich abgeschlossen.\n"
|
||||
IDS_WLAN_DISCONNECT, "\nWLAN getrennt\n"
|
||||
/* === */
|
||||
IDS_MSG_WEP_ENABLED, "WEP aktiv: %s\n"
|
||||
IDS_MSG_NETWORK_MODE, "Netzwerkmodus: %s\n"
|
||||
IDS_MSG_CURRENT_WIRELESS, "\nAktuelle WLAN-Konfiguration:\n\n"
|
||||
IDS_MSG_ENCRYPTED, "Verschlüsselt: %s\n"
|
||||
IDS_MSG_NETWORK_TYPE, "Netzwerktyp: %s\n"
|
||||
IDS_MSG_RSSI, "RSSI: %i dBm\n"
|
||||
IDS_MSG_SUPPORT_RATE, "Unterstützte Geschwindigkeiten (Mbps): "
|
||||
IDS_MSG_TRANSMISSION_POWER, "Sendeleistung: %d mW\n"
|
||||
IDS_MSG_ANTENNA_COUNT, "Anzahl der Antennen: %d\n"
|
||||
IDS_MSG_TRANSMIT_ANTENNA, "Sendeantenne: %d\n"
|
||||
IDS_MSG_TRANSMIT_ANTENNA_ANY, "Sendeantenne: beliebig\n"
|
||||
IDS_MSG_RECEIVE_ANTENNA, "Empfangsantenne: %d\n"
|
||||
IDS_MSG_RECEIVE_ANTENNA_ANY, "Empfangsantenne: beliebig\n"
|
||||
IDS_MSG_FRAGMENT_THRESHOLD, "Fragmentierungsschwelle: %d Bytes\n"
|
||||
IDS_MSG_RTS_THRESHOLD, "RTS-Schwelle: %d Bytes\n"
|
||||
/* === */
|
||||
IDS_YES, "Ja"
|
||||
IDS_NO, "Nein"
|
||||
IDS_ADHOC, "Adhoc"
|
||||
IDS_INFRASTRUCTURE, "Infrastruktur"
|
||||
END
|
40
base/applications/network/wlanconf/lang/it-IT.rc
Normal file
40
base/applications/network/wlanconf/lang/it-IT.rc
Normal file
|
@ -0,0 +1,40 @@
|
|||
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_USAGE, "\nConfigurazione adattatore WLAN.\n\n\
|
||||
WLANCONF [-c SSID [-w WEP] [-a]] [-d] [-s]\n\n\
|
||||
\t-c SSID\t\tConnesso al SSID,\n\
|
||||
\t-w WEP\t\tSpecifica una chiave WEP da usare.\n\
|
||||
\t-a\t\tSpecifica la rete di destinazione ad-hoc\n\
|
||||
\t-d\t\tDisconneti dall'AP corrente.\n\
|
||||
\t-s\t\tEsegue la scansione e visualizza un elenco di punti di accesso\n\
|
||||
\t\t\tin range.\n\n\
|
||||
Non passando nessun parametro verranno stampate le informazioni relative alla connessione WLAN corrente\n"
|
||||
/* === */
|
||||
IDS_NO_NETWORK, "Nessuna rete trovata\n"
|
||||
IDS_NO_WLAN_ADAPTER, "Impossibile trovare un adattatore WLAN sul sistema\n"
|
||||
IDS_SUCCESS, "Operazione completata con successo.\n"
|
||||
IDS_WLAN_DISCONNECT, "\nWLAN disconnesso\n"
|
||||
/* === */
|
||||
IDS_MSG_WEP_ENABLED, "WEP abilitato: %s\n"
|
||||
IDS_MSG_NETWORK_MODE, "Modalità di rete: %s\n"
|
||||
IDS_MSG_CURRENT_WIRELESS, "\Informazioni correnti per la configurazione wireless:\n\n"
|
||||
IDS_MSG_ENCRYPTED, "Crittografia: %s\n"
|
||||
IDS_MSG_NETWORK_TYPE, "Tipologia rete: %s\n"
|
||||
IDS_MSG_RSSI, "RSSI: %i dBm\n"
|
||||
IDS_MSG_SUPPORT_RATE, "Tariffe supportate (Mbps): "
|
||||
IDS_MSG_TRANSMISSION_POWER, "Potenza Trasmissione: %d mW\n"
|
||||
IDS_MSG_ANTENNA_COUNT, "Numero Antenne: %d\n"
|
||||
IDS_MSG_TRANSMIT_ANTENNA, "Trasmissione antenna: %d\n"
|
||||
IDS_MSG_TRANSMIT_ANTENNA_ANY, "Trasmissione antenna: Qualsiasi\n"
|
||||
IDS_MSG_RECEIVE_ANTENNA, "Ricezione Antenna: %d\n"
|
||||
IDS_MSG_RECEIVE_ANTENNA_ANY, "Ricezione Antenna: Qualsiasi\n"
|
||||
IDS_MSG_FRAGMENT_THRESHOLD, "Soglia di Frammentazione: %d bytes\n"
|
||||
IDS_MSG_RTS_THRESHOLD, "Soglia RTS: %d bytes\n"
|
||||
/* === */
|
||||
IDS_YES, "Si"
|
||||
IDS_NO, "No"
|
||||
IDS_ADHOC, "Adhoc"
|
||||
IDS_INFRASTRUCTURE, "Infrastruttura"
|
||||
END
|
|
@ -5,13 +5,21 @@
|
|||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS WLAN Configuration Tool\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "wlanconf\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "wlanconf\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "wlanconf.exe\0"
|
||||
#define REACTOS_STR_ORIGINAL_COPYRIGHT "Cameron Gutman (cameron.gutman@reactos.org)\0"
|
||||
#include <reactos/version.rc>
|
||||
|
||||
// UTF-8
|
||||
#pragma code_page(65001)
|
||||
|
||||
#ifdef LANGUAGE_DE_DE
|
||||
#include "lang/de-DE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_EN_US
|
||||
#include "lang/en-US.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_IT_IT
|
||||
#include "lang/it-IT.rc"
|
||||
#endif
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ BEGIN
|
|||
MENUITEM SEPARATOR
|
||||
MENUITEM "切り取り(&T)\tCtrl+X", CMD_CUT
|
||||
MENUITEM "コピー(&C)\tCtrl+C", CMD_COPY
|
||||
MENUITEM "貼 り付け(&P)\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "貼り付け(&P)\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "削除(&D)\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "検索(&F)...\tCtrl+F", CMD_SEARCH
|
||||
|
@ -77,7 +77,7 @@ BEGIN
|
|||
MENUITEM "右端で折り返す(&W)", CMD_WRAP
|
||||
MENUITEM "フォント(&F)...", CMD_FONT
|
||||
END
|
||||
POPUP "表 示(&V)"
|
||||
POPUP "表示(&V)"
|
||||
BEGIN
|
||||
MENUITEM "ステータス バー(&B)", CMD_STATUSBAR
|
||||
END
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
/*
|
||||
/*
|
||||
* Notepad (Turkish resources)
|
||||
*
|
||||
* Copyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>
|
||||
* Proofread 1998 by David Lee Lambert <lamber45@egr.msu.edu>
|
||||
* Copyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>
|
||||
* Çeviri 2012 Arda Tanrıkulu <ardatanrikulu@gmail.com>
|
||||
* Copyright 2012 Arda Tanrıkulu <ardatanrikulu@gmail.com>
|
||||
* Copyright 2013 Erdem Ersoy (eersoy93)
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -43,81 +41,80 @@ END
|
|||
|
||||
MAIN_MENU MENU
|
||||
BEGIN
|
||||
POPUP "&Dosya"
|
||||
POPUP "&Kütük"
|
||||
BEGIN
|
||||
MENUITEM "&Yeni\tCtrl+N", CMD_NEW
|
||||
MENUITEM "&Aç...\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "&Yeni\tCtrl+N", CMD_NEW
|
||||
MENUITEM "&Aç...\tCtrl+O", CMD_OPEN
|
||||
MENUITEM "&Kaydet\tCtrl+S", CMD_SAVE
|
||||
MENUITEM "&Farklı Kaydet...", CMD_SAVE_AS
|
||||
MENUITEM "Ay&rı Kaydet...", CMD_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Sayfa Yapısı...", CMD_PAGE_SETUP
|
||||
MENUITEM "&Yazdır\tCtrl+P", CMD_PRINT
|
||||
MENUITEM "&Yazıcı Ayarları...", CMD_PRINTER_SETUP
|
||||
MENUITEM "Ya&zdır...\tCtrl+P", CMD_PRINT
|
||||
MENUITEM "Yaz&ıcı Ayarları...", CMD_PRINTER_SETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Çıkış", CMD_EXIT
|
||||
MENUITEM "&Çıkış", CMD_EXIT
|
||||
END
|
||||
POPUP "&Düzen"
|
||||
BEGIN
|
||||
MENUITEM "&Geri Al\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM "&Geri Al\tCtrl+Z", CMD_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Kes\tCtrl+X", CMD_CUT
|
||||
MENUITEM "K&opyala\tCtrl+C", CMD_COPY
|
||||
MENUITEM "Y&apıştır\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Sil\tDel", CMD_DELETE
|
||||
MENUITEM "&Çoğalt\tCtrl+C", CMD_COPY
|
||||
MENUITEM "&Yapıştır\tCtrl+V", CMD_PASTE
|
||||
MENUITEM "&Sil\tDel", CMD_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Bul...\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "Son&rakini Bul\tF3", CMD_SEARCH_NEXT
|
||||
MENUITEM "&Değiştir\tCtrl+H", CMD_REPLACE
|
||||
MENUITEM "G&it...\tCtrl+G", CMD_GOTO
|
||||
MENUITEM "&Ara...\tCtrl+F", CMD_SEARCH
|
||||
MENUITEM "S&onrakini Ara\tF3", CMD_SEARCH_NEXT
|
||||
MENUITEM "&Değiştir...\tCtrl+H",CMD_REPLACE
|
||||
MENUITEM "G&it...\tCtrl+G", CMD_GOTO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Tümünü Seç\tCtrl+A", CMD_SELECT_ALL
|
||||
MENUITEM "Saat/Tari&h\tF5", CMD_TIME_DATE
|
||||
MENUITEM "&Zaman\tF5", CMD_TIME_DATE
|
||||
END
|
||||
POPUP "&Biçim"
|
||||
BEGIN
|
||||
MENUITEM "&Sözcük Kaydır", CMD_WRAP
|
||||
MENUITEM "&Yazı Tipi...", CMD_FONT
|
||||
MENUITEM "&Satır Kaydır", CMD_WRAP
|
||||
MENUITEM "&Yazı Türü...", CMD_FONT
|
||||
END
|
||||
POPUP "&Görünüm"
|
||||
BEGIN
|
||||
MENUITEM "&Durum çubuğu", CMD_STATUSBAR
|
||||
MENUITEM "&Durum Çubuğu", CMD_STATUSBAR
|
||||
END
|
||||
POPUP "&Yardım"
|
||||
BEGIN
|
||||
MENUITEM "&Yardım Konuları", CMD_HELP_CONTENTS
|
||||
MENUITEM "&Ara...", CMD_HELP_SEARCH
|
||||
MENUITEM "&Yardımda yardım", CMD_HELP_ON_HELP
|
||||
MENUITEM "&Yardım Konuları", CMD_HELP_CONTENTS
|
||||
MENUITEM "Yardımda &Ara...", CMD_HELP_SEARCH
|
||||
MENUITEM "Yardım &İçin Yardım", CMD_HELP_ON_HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Not Defteri &Hakkında", CMD_ABOUT
|
||||
MENUITEM "Bil&gi", CMD_ABOUT_WINE
|
||||
MENUITEM "&Hakkında", CMD_ABOUT
|
||||
MENUITEM "&Bilgi", CMD_ABOUT_WINE
|
||||
END
|
||||
END
|
||||
|
||||
/* Dialog `Page setup' */
|
||||
|
||||
DIALOG_PAGESETUP DIALOGEX 0, 0, 225, 95
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "MS Shell Dlg"
|
||||
CAPTION "Sayfa Yapısı"
|
||||
BEGIN
|
||||
LTEXT "Üst&bilgi:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Altbil&gi:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "Üst &Bilgi:", 0x140, 10, 07, 40, 15
|
||||
EDITTEXT 0x141, 60, 05,110, 12, WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Alt Bilgi:", 0x142, 10, 24, 40, 15
|
||||
EDITTEXT 0x143, 60, 22,110, 12, WS_BORDER | WS_TABSTOP
|
||||
|
||||
GROUPBOX "&Kenar Boşlukları:", 0x144, 10, 43,160, 45
|
||||
LTEXT "S&ol:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
GROUPBOX "Kenar Payı:", 0x144, 10, 43,160, 45
|
||||
LTEXT "S&ol:", 0x145, 20, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Üst:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
LTEXT "&Üst:", 0x148, 20, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Sağ:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
LTEXT "&Sağ:", 0x14B, 100, 55, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_RIGHTVALUE,*/ 0x14D, 130, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "A<:", 0x14E, 100, 73, 30, 10, WS_CHILD
|
||||
LTEXT "A<:", 0x14E, 100, 73, 30, 10, WS_CHILD
|
||||
EDITTEXT /*STRING_PAGESETUP_BOTTOMVALUE,*/ 0x150, 130, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
|
||||
DEFPUSHBUTTON "Tamam", IDOK, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "İptal", IDCANCEL, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Yardım", IDHELP, 180, 39, 40, 15, WS_TABSTOP
|
||||
DEFPUSHBUTTON "&Tamam", IDOK, 180, 3, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Vazgeç", IDCANCEL, 180, 21, 40, 15, WS_TABSTOP
|
||||
PUSHBUTTON "&Yardım", IDHELP, 180, 39, 40, 15, WS_TABSTOP
|
||||
END
|
||||
|
||||
/* Dialog `Encoding' */
|
||||
|
@ -129,31 +126,31 @@ BEGIN
|
|||
COMBOBOX ID_ENCODING,54,0,156,80,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "K&odlama:",0x155,5,2,41,12
|
||||
COMBOBOX ID_EOLN,54,18,156,80,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Sonhatlar:",0x156,5,20,41,12
|
||||
LTEXT "&Sonlanma:",0x156,5,20,41,12
|
||||
END
|
||||
|
||||
/* Dialog 'Go To' */
|
||||
DIALOG_GOTO DIALOGEX 0,0,165,50
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
FONT 8, "MS Shell Dlg"
|
||||
CAPTION "Satıra git"
|
||||
CAPTION "Satıra Git"
|
||||
BEGIN
|
||||
EDITTEXT ID_LINENUMBER,54,10,106,12,WS_CHILD | WS_BORDER | WS_TABSTOP
|
||||
LTEXT "&Satır No:",0x155,5,12,41,12,WS_CHILD | WS_TABSTOP | ES_NUMBER
|
||||
DEFPUSHBUTTON "Tamam", IDOK, 75, 30, 40, 15, WS_CHILD | WS_TABSTOP
|
||||
PUSHBUTTON "İptal", IDCANCEL, 120, 30, 40, 15, WS_CHILD | WS_TABSTOP
|
||||
LTEXT "Satır No:",0x155,5,12,41,12,WS_CHILD | WS_TABSTOP | ES_NUMBER
|
||||
DEFPUSHBUTTON "&Tamam", IDOK, 75, 30, 40, 15, WS_CHILD | WS_TABSTOP
|
||||
PUSHBUTTON "&Vazgeç", IDCANCEL, 120, 30, 40, 15, WS_CHILD | WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX DISCARDABLE 22,16,284,170
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS Not Defteri Hakkında"
|
||||
CAPTION "ReactOS Metin Düzenleyicisi Hakkında"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "ReactOS Not Defteri v1.0\r\nCopyright 1997,98 Marcel Baur <mbaur@g26.ethz.ch>\r\nCopyright 2000 Mike McCormack <Mike_McCormack@looksmart.com.au>\r\nCopyright 2002 Sylvain Petreolle <spetreolle@yahoo.fr>\r\nCopyright 2002 Andriy Palamarchuk\r\n",
|
||||
CONTROL "ReactOS Metin Düzenleyicisi - Sürüm: 1.0\r\nTelif Hakkı: 1997,98 Marcel Baur (mbaur@g26.ethz.ch)\r\nTelif Hakkı: 2000 Mike McCormack (Mike_McCormack@looksmart.com.au)\r\nTelif Hakkı: 2002 Sylvain Petreolle (spetreolle@yahoo.fr)\r\nTelif Hakkı: 2002 Andriy Palamarchuk\r\n",
|
||||
-1,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,46,7,232,39
|
||||
CONTROL " ",
|
||||
-1,"Static",0x50000000,8,48,272,11
|
||||
DEFPUSHBUTTON "Kapat",IDOK,114,149,44,15,WS_GROUP
|
||||
DEFPUSHBUTTON "&Tamam",IDOK,114,149,44,15,WS_GROUP
|
||||
ICON IDI_NPICON,-1,12,9,20,30
|
||||
EDITTEXT IDC_LICENSE,8,64,272,81,ES_MULTILINE |
|
||||
ES_READONLY | WS_VSCROLL
|
||||
|
@ -161,7 +158,7 @@ END
|
|||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
STRING_LICENSE, "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program 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 General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
STRING_LICENSE, "ÖNEMLİ: Aşağıdaki metin özgün metnin resmi olmayan çevirisidir. Çeviri metniyle özgün metin arasında ayrım olabilir. Özgün metin çeviri metninin altındadır.\r\n\r\n***\r\n\r\nBu yazılım özgürdür, yani bu yazılım Özgür Yazılım Vakfı'nın yayınladığı GNU Genel Kamu Lisansı'nın 2. sürümü veya daha sonraki sürümleri altında yeniden dağıtabilir veya değiştirebilirsiniz.\r\n\r\nBu yazılım, kullanışlı olabileceği umuduyla dağıtılmıştır, ancak özellikle SATILABİLİRLİK ve BELİRLİ BİR AMACA UYGUNLUK açısından olmak üzere bu yazılımın hiçbir güvencesi yoktur. Daha fazla bilgi için GNU Genel Kamu Lisansı'na bakınız.\r\n\r\nBu yazılımla birlikte GNU Genel Kamu Lisansı'nın bir sûretine de iye olmanız gerekir, eğer yoksa Özgür Yazılım Vakfı A.Ş.'ne (51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ABD) yazınız. \r\n\r\n***\r\n\r\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program 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 General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
@ -173,29 +170,29 @@ STRING_PAGESETUP_RIGHTVALUE, "20 mm" /* FIXME */
|
|||
STRING_PAGESETUP_TOPVALUE, "25 mm" /* FIXME */
|
||||
STRING_PAGESETUP_BOTTOMVALUE, "25 mm" /* FIXME */
|
||||
|
||||
STRING_NOTEPAD, "Not Defteri"
|
||||
STRING_NOTEPAD, "Metin Düzenleyicisi"
|
||||
STRING_ERROR, "HATA"
|
||||
STRING_WARNING, "UYARI"
|
||||
STRING_INFO, "Bilgi"
|
||||
|
||||
STRING_UNTITLED, "Adsız"
|
||||
|
||||
STRING_ALL_FILES, "Tüm dosyalar (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Metin dosyaları (*.txt)"
|
||||
STRING_ALL_FILES, "Tüm Kütükler (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Metin Belgeleri (*.txt)"
|
||||
|
||||
STRING_TOOLARGE, "'%s' dosyası Not Defteri için çok büyük.\n\nBu dosyayı düzenlemek için başka bir düzenleyici kullanın."
|
||||
STRING_NOTEXT, "Hiçbirşey yazmadınız."
|
||||
STRING_DOESNOTEXIST, "'%s' dosyası bulunamıyor.\n\nYeni bir dosya yaratmak ister misiniz?"
|
||||
STRING_NOTSAVED, " dosyasındaki metin değişmiş.\n\nDeğişiklikleri kaydetmek istiyor musunuz?"
|
||||
STRING_NOTFOUND, "'%s' bulunamıyor."
|
||||
STRING_OUT_OF_MEMORY, "Bu işlemi tamamlamak için yetersiz bellek. Kullanılabilen belleği arttırmak için bir veya daha fazla uygulamadan çıkıp yeniden deneyin."
|
||||
STRING_CANNOTFIND "'%s' bulunamıyor"
|
||||
STRING_TOOLARGE, "'%s' kütüğü Metin Düzenleyicisi için çok büyük. Bu kütüğü düzenlemek için başka bir metin düzenleyicisi kullanınız."
|
||||
STRING_NOTEXT, "Hiçbir şey yazmadınız. Lütfen bir şeyler yazıp yeniden deneyiniz."
|
||||
STRING_DOESNOTEXIST, "'%s' kütüğü mevcut değil. Yeni bir kütük oluşturmak ister misiniz?"
|
||||
STRING_NOTSAVED, "'%s' kütüğündeki metin değiştirilmiş. Değişiklikleri kaydetmek istiyor musunuz?"
|
||||
STRING_NOTFOUND, "'%s' kütüğü bulunamadı."
|
||||
STRING_OUT_OF_MEMORY, "Bu işlemi tamamlamak için gereken bellek yetersiz. Kullanılabilen belleği arttırmak için bir veya daha fazla uygulamadan çıkıp bu işlemi yeniden deneyiniz."
|
||||
STRING_CANNOTFIND "'%s' bulunamadı."
|
||||
STRING_ANSI, "ANSI"
|
||||
STRING_UNICODE, "Unicode"
|
||||
STRING_UNICODE_BE, "Unicode (big endian)"
|
||||
STRING_UNICODE_BE, "Unicode (Big Endian)"
|
||||
STRING_UTF8, "UTF-8"
|
||||
STRING_CRLF, "Windows"
|
||||
STRING_LF, "Unix"
|
||||
STRING_LF, "UNIX"
|
||||
STRING_CR, "Mac"
|
||||
STRING_LINE_COLUMN, "St %d, Stn %d"
|
||||
STRING_LINE_COLUMN, "%d. Satır, %d. Sütun"
|
||||
END
|
||||
|
|
|
@ -64,7 +64,7 @@ BEGIN
|
|||
ID_REGISTRY_CONNECTNETWORKREGISTRY
|
||||
|
||||
MENUITEM "&Disconnetti da Registro di rete...",
|
||||
ID_REGISTRY_DISCONNECTNETWORKREGISTRY,GRAYED
|
||||
ID_REGISTRY_DISCONNECTNETWORKREGISTRY, GRAYED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Stampa\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
|
||||
MENUITEM SEPARATOR
|
||||
|
@ -227,7 +227,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP |
|
|||
CAPTION "Modifica DWORD"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "&Name:",IDC_STATIC,6,6,134,8
|
||||
LTEXT "&Nome:",IDC_STATIC,6,6,134,8
|
||||
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
|
||||
LTEXT "&Dati:",IDC_STATIC,6,35,161,8
|
||||
EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL
|
||||
|
@ -242,43 +242,43 @@ END
|
|||
IDD_EDIT_RESOURCE_LIST DIALOGEX 32, 24, 170, 120
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP |
|
||||
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Resource List"
|
||||
CAPTION "Lista Risorse"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
{
|
||||
CONTROL "", IDC_RESOURCE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 10, 150, 75
|
||||
DEFPUSHBUTTON "OK", IDOK, 27, 100, 50, 14
|
||||
PUSHBUTTON "Show...", IDC_SHOW_RESOURCE, 93, 100, 50, 14, WS_DISABLED
|
||||
PUSHBUTTON "Visualizza...", IDC_SHOW_RESOURCE, 93, 100, 50, 14, WS_DISABLED
|
||||
}
|
||||
|
||||
|
||||
IDD_EDIT_RESOURCE DIALOGEX 6, 18, 281, 283
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_CONTEXTHELP |
|
||||
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Resources"
|
||||
CAPTION "Risorse"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
{
|
||||
LTEXT "DMA:", IDC_STATIC, 10, 5, 20, 8
|
||||
CONTROL "", IDC_DMA_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 15, 261, 31
|
||||
LTEXT "Interrupt:", IDC_STATIC, 10, 48, 35, 8
|
||||
LTEXT "Interruzione:", IDC_STATIC, 10, 48, 35, 8
|
||||
CONTROL "", IDC_IRQ_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 58, 261, 31
|
||||
LTEXT "Memory:", IDC_STATIC, 10, 91, 32, 8
|
||||
LTEXT "Memoria:", IDC_STATIC, 10, 91, 32, 8
|
||||
CONTROL "", IDC_MEMORY_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 101, 261, 31
|
||||
LTEXT "Port:", IDC_STATIC, 10, 134, 38, 8
|
||||
LTEXT "Porta:", IDC_STATIC, 10, 134, 38, 8
|
||||
CONTROL "", IDC_PORT_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 144, 261, 31
|
||||
LTEXT "Device specific data:", IDC_STATIC, 10, 177, 80, 8
|
||||
LTEXT "Dati specifici del dispositivo", IDC_STATIC, 10, 177, 80, 8
|
||||
CONTROL "", IDC_DEVICE_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 10, 188, 261, 31
|
||||
GROUPBOX "Usage", IDC_STATIC, 10, 219, 125, 39
|
||||
LTEXT "Undetermined", IDC_UNDETERMINED, 18, 230, 46, 8, WS_DISABLED
|
||||
LTEXT "Shared", IDC_SHARED, 18, 240, 48, 8, WS_DISABLED
|
||||
LTEXT "Device exclusive", IDC_DEVICE_EXCLUSIVE, 72, 230, 58, 8, WS_DISABLED
|
||||
LTEXT "Driver exclusive", IDC_DRIVER_EXCLUSIVE, 72, 240, 54, 8, WS_DISABLED
|
||||
RTEXT "Interface Type:", IDC_STATIC, 144, 220, 58, 8
|
||||
GROUPBOX "Utilizzo", IDC_STATIC, 10, 219, 125, 39
|
||||
LTEXT "Indeterminato", IDC_UNDETERMINED, 18, 230, 46, 8, WS_DISABLED
|
||||
LTEXT "Condividi", IDC_SHARED, 18, 240, 48, 8, WS_DISABLED
|
||||
LTEXT "Device esclusivo", IDC_DEVICE_EXCLUSIVE, 72, 230, 58, 8, WS_DISABLED
|
||||
LTEXT "Driver esclusivo", IDC_DRIVER_EXCLUSIVE, 72, 240, 54, 8, WS_DISABLED
|
||||
RTEXT "Tipo di interfaccia:", IDC_STATIC, 144, 220, 58, 8
|
||||
LTEXT "", IDC_INTERFACETYPE, 205, 220, 66, 8
|
||||
RTEXT "Bus Nummer:", IDC_STATIC, 151, 230, 51, 8
|
||||
LTEXT "", IDC_BUSNUMBER, 205, 230, 66, 8
|
||||
RTEXT "Version:", IDC_STATIC, 151, 240, 51, 8
|
||||
RTEXT "Versione:", IDC_STATIC, 151, 240, 51, 8
|
||||
LTEXT "", IDC_VERSION, 205, 240, 66, 8
|
||||
RTEXT "Revision:", IDC_STATIC, 151, 250, 51, 8
|
||||
RTEXT "Revisione:", IDC_STATIC, 151, 250, 51, 8
|
||||
LTEXT "", IDC_REVISION, 205, 250, 66, 8
|
||||
DEFPUSHBUTTON "OK",IDOK, 92, 263, 40, 14
|
||||
PUSHBUTTON "&Data...", IDC_SHOW_RESOURCE_DATA, 148, 263, 40, 14, WS_DISABLED
|
||||
|
@ -306,7 +306,7 @@ END
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
ID_REGISTRY_MENU "Contiene i comandi per lavorare su tutto il Registro"
|
||||
ID_EDIT_MENU "Contiene i comandi per editare valori o chiavi"
|
||||
ID_EDIT_MENU "Contiene i comandi per modificare valori o chiavi"
|
||||
ID_VIEW_MENU "Contiene i comandi per personalizzare la finestra del Registro"
|
||||
ID_FAVOURITES_MENU "Contiene i comandi per accedere alle chiavi usate frequentemente"
|
||||
ID_HELP_MENU "Contiene i comandi per visualizzare la Guida e informazioni sull'editor del Registro"
|
||||
|
@ -324,9 +324,9 @@ BEGIN
|
|||
ID_REGISTRY_EXPORTREGISTRYFILE
|
||||
"Esporta tutto o parte del Registro in un file di testo"
|
||||
ID_REGISTRY_LOADHIVE
|
||||
"Loads a hive file into the registry"
|
||||
"Carica un file hive nel Registro di sistema"
|
||||
ID_REGISTRY_UNLOADHIVE
|
||||
"Unloads a hive from the registry"
|
||||
"Espelle un hive dal Registro di sistema"
|
||||
ID_REGISTRY_CONNECTNETWORKREGISTRY
|
||||
"Si connette al Registro di un computer remoto"
|
||||
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
|
||||
|
@ -370,23 +370,23 @@ BEGIN
|
|||
IDS_ERR_DELETEVALUE "Impossibile cancellare tutti i valori indicati!"
|
||||
IDS_ERR_RENVAL_CAPTION "Errore nel rinominare il valore"
|
||||
IDS_ERR_RENVAL_TOEMPTY "Impossibile rinominare %s. Il nome indicato è vuoto. Riprovate con un altro nome."
|
||||
IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration"
|
||||
IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?"
|
||||
IDS_QUERY_IMPORT_HIVE_CAPTION "Conferma ripristino della chiave"
|
||||
IDS_QUERY_IMPORT_HIVE_MSG "Una chiave sarà ripristinata in cima alla chiave correntemente selezionata.\n Tutti i valori e le sottochiavi di questa chiave verranno eliminati.\n Si desidera continuare l'operazione?"
|
||||
IDS_NEW_KEY "Nuova chiave #%d"
|
||||
IDS_NEW_VALUE "Nuovo valore #%d"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_BINARY_EMPTY "(valore binario di lunghezza nulla)"
|
||||
IDS_BINARY_EMPTY "(valore binario di lunghezza nulla)"
|
||||
IDS_DEFAULT_VALUE_NAME "(predefinito)"
|
||||
IDS_VALUE_NOT_SET "(valore non impostato)"
|
||||
IDS_UNKNOWN_TYPE "Tipo sconosciuto: (0x%lx)"
|
||||
IDS_MY_COMPUTER "Il mio Computer"
|
||||
IDS_IMPORT_REG_FILE "Importa file di Registro"
|
||||
IDS_EXPORT_REG_FILE "Esporta file di Registro"
|
||||
IDS_LOAD_HIVE "Load Hive"
|
||||
IDS_UNLOAD_HIVE "Unload Hive"
|
||||
IDS_LOAD_HIVE "Carica Hive"
|
||||
IDS_UNLOAD_HIVE "Scarica Hive"
|
||||
IDS_INVALID_DWORD "(valore DWORD non valido)"
|
||||
END
|
||||
|
||||
|
@ -436,48 +436,48 @@ END
|
|||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_IMPORT_PROMPT "Adding information can unintentionally change or delete values and cause components to stop working correctly.\nIf you do not trust the source of this information in '%s', do not add it to registry.\n\nAre you sure you want to continue?"
|
||||
IDS_IMPORT_OK "The keys and values contained in '%s' have been successfully added to the registry."
|
||||
IDS_IMPORT_ERROR "Cannot import '%s': Error opening the file. There may be a disk, file system error or file may not exist."
|
||||
IDS_EXPORT_ERROR "Cannot export '%s': Error creating or writing to the file. There may be a disk or file system error."
|
||||
IDS_IMPORT_PROMPT "Aggiungendo informazioni si possono involontariamente modificare o eliminare i valori e causare il giusto funzionamente dei componenti.\n Se non si considera attendibile la fonte di queste informazioni in '% s', non aggiungere al Registro di sistema.\n\n Si desidera continuare? "
|
||||
IDS_IMPORT_OK "Le chiavi e i valori contenuti in '% s' sono stati correttamente aggiunti al Registro di sistema."
|
||||
IDS_IMPORT_ERROR "Impossibile importare '% s': Errore durante l'apertura del file. Ci può essere un disco, file cdanneggiati o il file non esiste."
|
||||
IDS_EXPORT_ERROR "Impossibile esportare '% s': Errore durante la creazione o la scrittura del file. Ci può essere un disco o un file di sistema danneggiato."
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_BUSNUMBER "Bus Number"
|
||||
IDS_INTERFACE "Interface"
|
||||
IDS_DMA_CHANNEL "Channel"
|
||||
IDS_DMA_PORT "Port"
|
||||
IDS_INTERRUPT_VECTOR "Vector"
|
||||
IDS_INTERRUPT_LEVEL "Level"
|
||||
IDS_INTERRUPT_AFFINITY "Affinity"
|
||||
IDS_INTERRUPT_TYPE "Type"
|
||||
IDS_MEMORY_ADDRESS "Physical Address"
|
||||
IDS_MEMORY_LENGTH "Length"
|
||||
IDS_MEMORY_ACCESS "Access"
|
||||
IDS_PORT_ADDRESS "Physical Address"
|
||||
IDS_PORT_LENGTH "Length"
|
||||
IDS_PORT_ACCESS "Access"
|
||||
IDS_SPECIFIC_RESERVED1 "Reserved 1"
|
||||
IDS_SPECIFIC_RESERVED2 "Reserved 2"
|
||||
IDS_SPECIFIC_DATASIZE "Data Size"
|
||||
IDS_INTERFACE "Interfaccia"
|
||||
IDS_DMA_CHANNEL "Canale"
|
||||
IDS_DMA_PORT "Porta"
|
||||
IDS_INTERRUPT_VECTOR "Vettore"
|
||||
IDS_INTERRUPT_LEVEL "Livello"
|
||||
IDS_INTERRUPT_AFFINITY "Affinità"
|
||||
IDS_INTERRUPT_TYPE "Tipo"
|
||||
IDS_MEMORY_ADDRESS "Indirizzo fisico"
|
||||
IDS_MEMORY_LENGTH "Lunghezza"
|
||||
IDS_MEMORY_ACCESS "Accesso"
|
||||
IDS_PORT_ADDRESS "Indirizzo fisico"
|
||||
IDS_PORT_LENGTH "Lunghezza"
|
||||
IDS_PORT_ACCESS "Accesso"
|
||||
IDS_SPECIFIC_RESERVED1 "Riservato 1"
|
||||
IDS_SPECIFIC_RESERVED2 "Riservato 2"
|
||||
IDS_SPECIFIC_DATASIZE "Lunghezza dati"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_PORT_PORT_IO "Port"
|
||||
IDS_PORT_MEMORY_IO "Memory"
|
||||
IDS_INTERRUPT_EDGE_SENSITIVE "Edge Sensitive"
|
||||
IDS_INTERRUPT_LEVEL_SENSITIVE "Level Sensitive"
|
||||
IDS_MEMORY_READ_ONLY "Read Only"
|
||||
IDS_MEMORY_WRITE_ONLY "Write Only"
|
||||
IDS_MEMORY_READ_WRITE "Read / Write"
|
||||
IDS_PORT_PORT_IO "Porta"
|
||||
IDS_PORT_MEMORY_IO "Memoria"
|
||||
IDS_INTERRUPT_EDGE_SENSITIVE "Sensibile al fronte"
|
||||
IDS_INTERRUPT_LEVEL_SENSITIVE "Sensibile al livello"
|
||||
IDS_MEMORY_READ_ONLY "Solo lettura"
|
||||
IDS_MEMORY_WRITE_ONLY "Solo scrittura"
|
||||
IDS_MEMORY_READ_WRITE "Leggi / Scrivi"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_BUS_UNDEFINED "Undefined"
|
||||
IDS_BUS_INTERNAL "Internal"
|
||||
IDS_BUS_UNDEFINED "Indefinito"
|
||||
IDS_BUS_INTERNAL "Interno"
|
||||
IDS_BUS_ISA "ISA"
|
||||
IDS_BUS_EISA "EISA"
|
||||
IDS_BUS_MICROCHANNEL "MicroChannel"
|
||||
|
@ -489,11 +489,11 @@ BEGIN
|
|||
IDS_BUS_CBUS "C-Bus"
|
||||
IDS_BUS_MPIBUS "MPI-Bus"
|
||||
IDS_BUS_MPSABUS "MPSA-Bus"
|
||||
IDS_BUS_PROCESSORINTERNAL "Processor Internal"
|
||||
IDS_BUS_PROCESSORINTERNAL "Processore Interno"
|
||||
IDS_BUS_INTERNALPOWERBUS "Internal Power Bus"
|
||||
IDS_BUS_PNPISABUS "PnP-ISA Bus"
|
||||
IDS_BUS_PNPBUS "PnP Bus"
|
||||
IDS_BUS_UNKNOWNTYPE "Unknown Interface Type"
|
||||
IDS_BUS_UNKNOWNTYPE "Tipologia interfaccia sconosciuta"
|
||||
END
|
||||
|
||||
/*****************************************************************/
|
||||
|
@ -513,15 +513,18 @@ BEGIN
|
|||
EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12
|
||||
END
|
||||
|
||||
//
|
||||
// Dialog resources
|
||||
//
|
||||
IDD_LOADHIVE DIALOGEX DISCARDABLE 0, 0, 193, 34
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Load Hive"
|
||||
CAPTION "Carica Hive"
|
||||
FONT 8, "Ms Shell Dlg"
|
||||
{
|
||||
LTEXT "&Key:", IDC_STATIC, 4, 4, 15, 8, SS_LEFT
|
||||
LTEXT "&Chiave:", IDC_STATIC, 4, 4, 15, 8, SS_LEFT
|
||||
EDITTEXT IDC_EDIT_KEY, 23, 2, 167, 13
|
||||
DEFPUSHBUTTON "OK", IDOK, 140, 17, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 89, 17, 50, 14
|
||||
PUSHBUTTON "Annulla", IDCANCEL, 89, 17, 50, 14
|
||||
}
|
||||
|
||||
IDD_ADDFAVORITES DIALOGEX DISCARDABLE 0, 0, 186, 46
|
||||
|
|
|
@ -164,7 +164,7 @@ BEGIN
|
|||
BEGIN
|
||||
MENUITEM "切り取り(&C)", ID_HEXEDIT_CUT
|
||||
MENUITEM "コピー(&C)", ID_HEXEDIT_COPY
|
||||
MENUITEM "貼 り付け(&P)", ID_HEXEDIT_PASTE
|
||||
MENUITEM "貼り付け(&P)", ID_HEXEDIT_PASTE
|
||||
MENUITEM "削除(&D)", ID_HEXEDIT_DELETE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "すべて選択(&A)", ID_HEXEDIT_SELECT_ALL
|
||||
|
|
|
@ -25,6 +25,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
/* include localised resources */
|
||||
// UTF-8
|
||||
#pragma code_page(65001)
|
||||
|
||||
#ifdef LANGUAGE_BG_BG
|
||||
#include "lang/bg-BG.rc"
|
||||
#endif
|
||||
|
|
|
@ -3,27 +3,27 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
|||
/* Dialog */
|
||||
IDD_GUI DIALOGEX DISCARDABLE 0, 0, 240, 255
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Remote Shutdown"
|
||||
CAPTION "Accesso remoto"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&OK",IDC_OK,125,232,50,14
|
||||
PUSHBUTTON "&Cancel",IDC_CANCEL,178,232,50,14
|
||||
CTEXT "Co&mputers:", IDC_STATIC,9,9,35,36
|
||||
LISTBOX IDC_COMPUTER_LIST,8,19,162,55
|
||||
PUSHBUTTON "&Add...",IDC_ADD_SYSTEM,179,19,50,14
|
||||
PUSHBUTTON "&Remove",IDC_REMOVE_SYSTEM,179,36,50,14,WS_DISABLED
|
||||
PUSHBUTTON "&Browse...",IDC_BROWSE_SYSTEM,179,53,50,14
|
||||
CTEXT "Which action do you want these computers to execute?", IDC_ACTION,14,81,20,14
|
||||
PUSHBUTTON "&Aggiungi...",IDC_ADD_SYSTEM,179,19,50,14
|
||||
PUSHBUTTON "&Rimuovi...",IDC_REMOVE_SYSTEM,179,36,50,14,WS_DISABLED
|
||||
PUSHBUTTON "&Naviga...",IDC_BROWSE_SYSTEM,179,53,50,14
|
||||
CTEXT "quale azione si vuole eseguire?", IDC_ACTION,14,81,20,14
|
||||
COMBOBOX IDC_ACTION_TYPE,37,79,129,14,WS_TABSTOP | CBS_DROPDOWN
|
||||
CHECKBOX "Warn users",IDC_WARN_USERS,178,79,50,14,BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
CTEXT "Display warning for",IDC_SHOW_WARN_ONE,11,99,65,14
|
||||
CHECKBOX "Avvio all'utente",IDC_WARN_USERS,178,79,50,14,BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
CTEXT "Visualizza avviso per",IDC_SHOW_WARN_ONE,11,99,65,14
|
||||
EDITTEXT IDC_SHOW_WARN,78,97,41,14
|
||||
CTEXT "second(s)",IDC_SHOW_WARN_TWO,124,99,32,10
|
||||
GROUPBOX "Shutdown Event Tracker",IDC_STATIC,5,114,224,114
|
||||
CTEXT "Reason:",IDC_STATIC,16,130,27,8
|
||||
CHECKBOX "Planned",IDC_PLANNED,175,130,40,12,BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
CTEXT "secondi(s)",IDC_SHOW_WARN_TWO,124,99,32,10
|
||||
GROUPBOX "Individuazione evento di arresto",IDC_STATIC,5,114,224,114
|
||||
CTEXT "Ragione:",IDC_STATIC,16,130,27,8
|
||||
CHECKBOX "Progettato",IDC_PLANNED,175,130,40,12,BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
COMBOBOX IDC_REASON_CODE,17,142,198,13,WS_TABSTOP | CBS_DROPDOWN
|
||||
CTEXT "Comm&ent:",IDC_COMMENT_CAPTION,17,159,30,8
|
||||
CTEXT "Comm&ento:",IDC_COMMENT_CAPTION,17,159,30,8
|
||||
EDITTEXT IDC_COMMENT_TEXT,17,171,198,50,WS_VSCROLL
|
||||
END
|
||||
|
||||
|
@ -35,69 +35,69 @@ BEGIN
|
|||
Usage: shutdown [/?] [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]\n\
|
||||
[/m \\\\computer][/t xxx][/d [p|u:]xx:yy [/c ""comment""]]\n\
|
||||
\n\
|
||||
No arguments or /? Display this help.\n\
|
||||
/i Show the graphical user interface (GUI). This option must be the\n\
|
||||
first one.\n\
|
||||
/l Log off on the local system only. Cannot be used with /m or /d.\n\
|
||||
/s Shutdown the computer.\n\
|
||||
/r Restart the computer.\n\
|
||||
/g Restart the computer and restart all the registered applications.\n\
|
||||
/a Cancel a delayed shutdown. Can only be used during the delay\n\
|
||||
period.\n\
|
||||
/p Shutdown the local computer without any timeout or warning. Can be\n\
|
||||
used with /d or /f.\n\
|
||||
/h Hibernate the local computer. Usable with /f.\n\
|
||||
/e Document the reason for the unexpected computer shutdown.\n\
|
||||
/m \\\\computer Specify the target computer (UNC/IP address).\n\
|
||||
/t xxx Set the timeout period to xxx seconds before shutting down.\n\
|
||||
The valid range starts from 0 to 315360000 (10 years),\n\
|
||||
30 being the default value.\n\
|
||||
/c ""comment"" Comment on the reason for shutdown or restart.\n\
|
||||
512 characters maximum allowed.\n\
|
||||
/f Force running applications to close without warning users. If you\n\
|
||||
do not specify any other parameter, this option will also log off.\n\
|
||||
/d [p|u:]xx:yy Give the reason code for the shutdown or the restart.\n\
|
||||
p indicates that the shutdown or the restart is planned.\n\
|
||||
u indicates that the reason is defined by the user.\n\
|
||||
If neither p nor u are specified, the shutdown or the restart are\n\
|
||||
not planned.\n\
|
||||
xx is the major reason code (positive integer smaller than 256).\n\
|
||||
yy is the minor reason code (positive integer smaller than 65536).\n"
|
||||
Non ci sono argomenti o/? Visualizza aiuti.\n\
|
||||
/i Mostra l'interfaccia utente grafica (GUI). Questa opzione deve essere la \n\
|
||||
prima.\n\
|
||||
/l Disconnessione dal sistema locale. Non può essere utilizzata con /m or /d.\n\
|
||||
/s Chiusura del computer.\n\
|
||||
/r Riavvio del computer.\n\
|
||||
/g Riavvio del computer e riavvio di tutte le applicazioni registrate.\n\
|
||||
/a cancellare un arresto ritardato. Può essere utilizzato solo durante il periodo\n\
|
||||
di ritardo.\n\
|
||||
/p Spegnere il computer locale senza alcun timeout o avviso. Può essere\n\
|
||||
utilizzato con /d or /f.\n\
|
||||
/h Sospensione del computer locale. Utilizzabile con /f.\n\
|
||||
/e Documento e il motivo dell'arresto del computer inatteso.\n\
|
||||
/m \\\\computer Specificare la destinazione del computer (UNC/IP address).\n\
|
||||
/t xxx Imposta il periodo di timeout di xxx secondi prima di spegnersi.\n\
|
||||
L'intervallo valido inizia 0-315360000 (10 anni),\n\
|
||||
30 è il valore di default.\n\
|
||||
/c ""comment"" Commento sul motivo per cui spegnere o riavviare.\n\
|
||||
512 caratteri massimi consentiti.\n\
|
||||
/f Forzare la chiusura delle applicazioni in esecuzione senza che avvertire gli utenti. Se\n\
|
||||
non è specificato un'altro parametro, questa opzione è valida anche per la disconnessione.\n\
|
||||
/d [p|u:]xx:yy Indicare il codice motivo per l'arresto o il riavvio.\n\
|
||||
p indica che l'arresto o il riavvio è previsto.\n\
|
||||
u indica che il motivo è definito dall'utente.\n\
|
||||
Se nè p nè u vengono specificati, l'arresto o il riavvio non sono\n\
|
||||
pianificati.\n\
|
||||
xx è il codice maggiore (numero intero positivo inferiore a 256).\n\
|
||||
yy è il codice minore (numero intero positivo inferiore a 65536).\n"
|
||||
|
||||
IDS_ERROR_SHUTDOWN_REBOOT, "ERROR: Unable to shutdown and restart at the same time.\n"
|
||||
IDS_ERROR_TIMEOUT, "ERROR: Timeout value of %u is out of bounds (0-315360000).\n"
|
||||
IDS_ERROR_ABORT, "ERROR: Unable to abort the shutdown of the system.\n"
|
||||
IDS_ERROR_LOGOFF, "ERROR: Unable to logoff the system.\n"
|
||||
IDS_ERROR_SHUTDOWN, "ERROR: Unable to shutdown the system.\n"
|
||||
IDS_ERROR_RESTART, "ERROR: Unable to restart the system.\n"
|
||||
IDS_ERROR_MAX_COMMENT_LENGTH, "ERROR: Comment length exceeds maximum character limit set by the system.\n"
|
||||
IDS_ERROR_HIBERNATE, "ERROR: Unable to send system into hibernation mode.\n"
|
||||
IDS_ERROR_HIBERNATE_LOCAL, "ERROR: Hibernation mode cannot be started remotely.\n"
|
||||
IDS_ERROR_HIBERNATE_ENABLED, "ERROR: Hibernation mode is not enabled.\n"
|
||||
IDS_ERROR_DIALOG_CAPTION, "Remote Shutdown"
|
||||
IDS_ERROR_DIALOG_INIT, "Unable to display the graphical user interface."
|
||||
IDS_ERROR_SHUTDOWN_REBOOT, "ERROR: Impossibile arrestare e riavviare al tempo stesso.\n"
|
||||
IDS_ERROR_TIMEOUT, "ERROR: Il valore di timeout di u% è fuori dai limiti (0-315360000) \n"
|
||||
IDS_ERROR_ABORT, "ERROR: Impossibile interrompere l'arresto del sistema \n."
|
||||
IDS_ERROR_LOGOFF, "ERROR: Impossibile disconnettersi dal sistema \n"
|
||||
IDS_ERROR_SHUTDOWN, "ERROR: Impossibile arrestare il sistema \n."
|
||||
IDS_ERROR_RESTART, "ERROR: Impossibile riavviare il sistema \n."
|
||||
IDS_ERROR_MAX_COMMENT_LENGTH, "ERROR: Lunghezza commento supera il limite massimo di caratteri impostato dal sistema \n"
|
||||
IDS_ERROR_HIBERNATE, "ERROR: Impossibile avviare il sistema in modalità di sospensione. \n"
|
||||
IDS_ERROR_HIBERNATE_LOCAL, "ERROR: Modalitài sospensione non può essere avviata in modalità remota \n"
|
||||
IDS_ERROR_HIBERNATE_ENABLED, "ERROR: Modalità di sospensione non è abilitata \n"
|
||||
IDS_ERROR_DIALOG_CAPTION, "Arresto improviso"
|
||||
IDS_ERROR_DIALOG_INIT, "Impossibile visualizzare l'interfaccia utente grafica."
|
||||
END
|
||||
|
||||
/* Remote shutdown action strings */
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_ACTION_SHUTDOWN, "Shutdown the system"
|
||||
IDS_ACTION_RESTART, "Restart the system"
|
||||
IDS_ACTION_UNEXPECTED_SHUTDOWN, "Annotate the unexpected shutdown"
|
||||
IDS_ACTION_SHUTDOWN, "Esci dal sistema"
|
||||
IDS_ACTION_RESTART, "Riavvia il sistema"
|
||||
IDS_ACTION_UNEXPECTED_SHUTDOWN, "Arresto improviso"
|
||||
END
|
||||
|
||||
/* Remote shutdown reason strings */
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_REASON_OTHER, "Other"
|
||||
IDS_REASON_HARDWARE_MAINTENANCE, "Hardware: Maintenance"
|
||||
IDS_REASON_HARDWARE_INSTALL, "Hardware: Installation"
|
||||
IDS_REASON_OS_RECOVER, "Operating System: Recovery"
|
||||
IDS_REASON_OS_RECONFIGURE, "Operating System: Reconfigure"
|
||||
IDS_REASON_APP_MAINTENANCE, "Application: Maintenance"
|
||||
IDS_REASON_APP_INSTALL, "Application: Installation"
|
||||
IDS_REASON_APP_UNRESPONSIVE, "Application: Unresponsive"
|
||||
IDS_REASON_APP_UNSTABLE, "Application: Unstable"
|
||||
IDS_REASON_SECURITY, "Security Issue"
|
||||
IDS_REASON_NETWORK, "Loss of network connectivity"
|
||||
IDS_REASON_OTHER, "Altro"
|
||||
IDS_REASON_HARDWARE_MAINTENANCE, "Hardware: Manutenzione"
|
||||
IDS_REASON_HARDWARE_INSTALL, "Hardware: Installazione"
|
||||
IDS_REASON_OS_RECOVER, "Sistema Operativo System: Recupero"
|
||||
IDS_REASON_OS_RECONFIGURE, "Sistema Operativo: Riconfigurazione"
|
||||
IDS_REASON_APP_MAINTENANCE, "Applicazione: Manutenzione"
|
||||
IDS_REASON_APP_INSTALL, "Applicazione: Installazione"
|
||||
IDS_REASON_APP_UNRESPONSIVE, "Applicazione: Non Risponde"
|
||||
IDS_REASON_APP_UNSTABLE, "Applicazione: Instabile"
|
||||
IDS_REASON_SECURITY, "Problema di sicurezza"
|
||||
IDS_REASON_NETWORK, "Connetività di rete assente"
|
||||
END
|
||||
|
|
|
@ -36,13 +36,13 @@ BEGIN
|
|||
END
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APP_TITLE "Sound recorder"
|
||||
IDC_REACTOS_SNDREC32 "REACTOS_SNDREC32"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRPOS "Position: %.2f s"
|
||||
IDS_STRDUR "Lenght: %.2f s"
|
||||
|
|
54
base/applications/sndrec32/lang/tr-TR.rc
Normal file
54
base/applications/sndrec32/lang/tr-TR.rc
Normal file
|
@ -0,0 +1,54 @@
|
|||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
IDC_REACTOS_SNDREC32 ACCELERATORS
|
||||
BEGIN
|
||||
"?", IDM_ABOUT, ASCII, ALT
|
||||
"/", IDM_ABOUT, ASCII, ALT
|
||||
END
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 196, 75
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "ReactOS Ses Kaydedicisi Hakkında"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x1
|
||||
BEGIN
|
||||
ICON IDI_SNDREC32,-1,19,14,21,20
|
||||
LTEXT "ReactOS Ses Kaydedicisi, sürüm 1.0",IDC_STATIC,56,16,114,8,SS_NOPREFIX
|
||||
LTEXT "Tekif Hakkı - 2009",IDC_STATIC,55,25,114,8
|
||||
DEFPUSHBUTTON "&Tamam",IDOK,139,54,50,14,WS_GROUP
|
||||
END
|
||||
|
||||
IDR_MENU1 MENU
|
||||
BEGIN
|
||||
POPUP "&Kütük"
|
||||
BEGIN
|
||||
MENUITEM "&Yeni", ID_NEW
|
||||
MENUITEM "&Aç...", ID_FILE_OPEN
|
||||
MENUITEM "&Kaydet", ID_FILE_SAVE, GRAYED
|
||||
MENUITEM "Ay&rı Kaydet...", ID_FILE_SAVEAS, GRAYED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Çıkış", ID_EXIT
|
||||
END
|
||||
MENUITEM "Yapılacak", 0
|
||||
MENUITEM "Yapılacak_2", 0
|
||||
POPUP "&Yardım"
|
||||
BEGIN
|
||||
MENUITEM "&Hakkında", ID__ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_APP_TITLE "Ses Kaydedicisi"
|
||||
IDC_REACTOS_SNDREC32 "REACTOS_SNDREC32"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_STRPOS "Konum: %.2f s"
|
||||
IDS_STRDUR "Uzunluk: %.2f s"
|
||||
IDS_STRBUF "Nitelik: %.2f KB"
|
||||
IDS_STRFMT "%.1f kHz, %u bitlik"
|
||||
IDS_STRMONO "Tek Yol"
|
||||
IDS_STRSTEREO "Çift Yol"
|
||||
IDS_STRCHAN "%s"
|
||||
END
|
|
@ -47,14 +47,17 @@ IDB_BITMAP2_STOP_DIS BITMAP "resources/but_stop_dis.bmp"
|
|||
#ifdef LANGUAGE_PL_PL
|
||||
#include "lang/pl-PL.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_RO_RO
|
||||
#include "lang/ro-RO.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_SK_SK
|
||||
#include "lang/sk-SK.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_SV_SE
|
||||
#include "lang/sv-SE.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_RO_RO
|
||||
#include "lang/ro-RO.rc"
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "lang/tr-TR.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "lang/uk-UA.rc"
|
||||
|
|
|
@ -35,7 +35,7 @@ BEGIN
|
|||
PUSHBUTTON "録音(&R)", IDC_RECORDING, 13,61,47,8, BS_AUTORADIOBUTTON
|
||||
PUSHBUTTON "その他(&O):", IDC_OTHER, 13,80,42,8, BS_AUTORADIOBUTTON | WS_DISABLED
|
||||
COMBOBOX IDC_LINE, 55,80,155,50, CBS_DROPDOWNLIST | WS_TABSTOP | WS_DISABLED
|
||||
LTEXT "表 示するコントロール:", IDC_LABELCONTROLS, 7, 109, 162, 8
|
||||
LTEXT "表示するコントロール:", IDC_LABELCONTROLS, 7, 109, 162, 8
|
||||
CONTROL "", IDC_CONTROLS, "SysListView32", LVS_REPORT | LVS_NOCOLUMNHEADER | WS_TABSTOP | WS_BORDER, 7, 122, 211, 96
|
||||
|
||||
PUSHBUTTON "OK", IDOK, 114,226,50,14
|
||||
|
|
|
@ -10,16 +10,16 @@ BEGIN
|
|||
END
|
||||
POPUP "オプション(&O)"
|
||||
BEGIN
|
||||
MENUITEM "常に手前に表 示(&A)", ID_OPTIONS_ALWAYSONTOP
|
||||
MENUITEM "常に手前に表示(&A)", ID_OPTIONS_ALWAYSONTOP
|
||||
, CHECKED
|
||||
MENUITEM "未使用時に最小化(&M)", ID_OPTIONS_MINIMIZEONUSE
|
||||
, CHECKED
|
||||
MENUITEM "最小化時に隠す(&H)", ID_OPTIONS_HIDEWHENMINIMIZED
|
||||
, CHECKED
|
||||
MENUITEM "16 ビット タスクの表 示(&S)", ID_OPTIONS_SHOW16BITTASKS
|
||||
MENUITEM "16 ビット タスクの表示(&S)", ID_OPTIONS_SHOW16BITTASKS
|
||||
, CHECKED
|
||||
END
|
||||
POPUP "表 示(&V)"
|
||||
POPUP "表示(&V)"
|
||||
BEGIN
|
||||
MENUITEM "最新の状態に更新(&R)", ID_VIEW_REFRESH
|
||||
POPUP "更新の頻度(&U)"
|
||||
|
@ -43,16 +43,16 @@ BEGIN
|
|||
MENUITEM "CPU ごとに 1 グラフ(&P)", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU
|
||||
, CHECKED
|
||||
END
|
||||
MENUITEM "カーネル時間を表 示する(&S)", ID_VIEW_SHOWKERNELTIMES
|
||||
MENUITEM "カーネル時間を表示する(&S)", ID_VIEW_SHOWKERNELTIMES
|
||||
END
|
||||
POPUP "ウィンドウ(&W)"
|
||||
BEGIN
|
||||
MENUITEM "上下に並べて表 示(&H)", ID_WINDOWS_TILEHORIZONTALLY
|
||||
MENUITEM "左右に並べて表 示(&V)", ID_WINDOWS_TILEVERTICALLY
|
||||
MENUITEM "上下に並べて表示(&H)", ID_WINDOWS_TILEHORIZONTALLY
|
||||
MENUITEM "左右に並べて表示(&V)", ID_WINDOWS_TILEVERTICALLY
|
||||
MENUITEM "最小化(&M)", ID_WINDOWS_MINIMIZE
|
||||
MENUITEM "最大化(&X)", ID_WINDOWS_MAXIMIZE
|
||||
MENUITEM "重ねて表 示(&C)", ID_WINDOWS_CASCADE
|
||||
MENUITEM "手前に表 示(&B)", ID_WINDOWS_BRINGTOFRONT
|
||||
MENUITEM "重ねて表示(&C)", ID_WINDOWS_CASCADE
|
||||
MENUITEM "手前に表示(&B)", ID_WINDOWS_BRINGTOFRONT
|
||||
END
|
||||
POPUP "ヘルプ(&H)"
|
||||
BEGIN
|
||||
|
@ -64,12 +64,12 @@ END
|
|||
|
||||
IDR_WINDOWSMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
MENUITEM "上下に並べて表 示(&H)", ID_WINDOWS_TILEHORIZONTALLY
|
||||
MENUITEM "左右に並べて表 示(&V)", ID_WINDOWS_TILEVERTICALLY
|
||||
MENUITEM "上下に並べて表示(&H)", ID_WINDOWS_TILEHORIZONTALLY
|
||||
MENUITEM "左右に並べて表示(&V)", ID_WINDOWS_TILEVERTICALLY
|
||||
MENUITEM "最小化(&M)", ID_WINDOWS_MINIMIZE
|
||||
MENUITEM "最大化(&X)", ID_WINDOWS_MAXIMIZE
|
||||
MENUITEM "重ねて表 示(&C)", ID_WINDOWS_CASCADE
|
||||
MENUITEM "手前に表 示(&B)", ID_WINDOWS_BRINGTOFRONT
|
||||
MENUITEM "重ねて表示(&C)", ID_WINDOWS_CASCADE
|
||||
MENUITEM "手前に表示(&B)", ID_WINDOWS_BRINGTOFRONT
|
||||
END
|
||||
|
||||
IDR_APPLICATION_PAGE_CONTEXT1 MENU DISCARDABLE
|
||||
|
@ -89,16 +89,16 @@ BEGIN
|
|||
POPUP "DUMMY"
|
||||
BEGIN
|
||||
MENUITEM "切り替え(&S)", ID_APPLICATION_PAGE_SWITCHTO
|
||||
MENUITEM "手前に表 示(&B)", ID_WINDOWS_BRINGTOFRONT
|
||||
MENUITEM "手前に表示(&B)", ID_WINDOWS_BRINGTOFRONT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "上下に並べて表 示(&H)", ID_WINDOWS_TILEHORIZONTALLY
|
||||
MENUITEM "左右に並べて表 示(&V)", ID_WINDOWS_TILEVERTICALLY
|
||||
MENUITEM "上下に並べて表示(&H)", ID_WINDOWS_TILEHORIZONTALLY
|
||||
MENUITEM "左右に並べて表示(&V)", ID_WINDOWS_TILEVERTICALLY
|
||||
MENUITEM "最小化(&M)", ID_WINDOWS_MINIMIZE
|
||||
MENUITEM "最大化(&X)", ID_WINDOWS_MAXIMIZE
|
||||
MENUITEM "重ねて表 示(&C)", ID_WINDOWS_CASCADE
|
||||
MENUITEM "重ねて表示(&C)", ID_WINDOWS_CASCADE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "タスクの終了(&E)", ID_APPLICATION_PAGE_ENDTASK
|
||||
MENUITEM "プロセスの表 示(&G)", ID_APPLICATION_PAGE_GOTOPROCESS
|
||||
MENUITEM "プロセスの表示(&G)", ID_APPLICATION_PAGE_GOTOPROCESS
|
||||
|
||||
END
|
||||
END
|
||||
|
@ -110,7 +110,7 @@ BEGIN
|
|||
MENUITEM "元のサイズに戻す(&R)", ID_RESTORE
|
||||
MENUITEM "閉じる(&C)", ID_FILE_EXIT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "常に手前に表 示(&A)", ID_OPTIONS_ALWAYSONTOP
|
||||
MENUITEM "常に手前に表示(&A)", ID_OPTIONS_ALWAYSONTOP
|
||||
END
|
||||
END
|
||||
|
||||
|
@ -180,7 +180,7 @@ BEGIN
|
|||
LVS_SINGLESEL | LVS_SHOWSELALWAYS |
|
||||
WS_BORDER | WS_TABSTOP,7,7,233,177
|
||||
PUSHBUTTON "プロセスの終了(&E)",IDC_ENDPROCESS,171,189,69,14
|
||||
CONTROL "全ユーザーのプロセスを表 示する(&S)",IDC_SHOWALLPROCESSES,
|
||||
CONTROL "全ユーザーのプロセスを表示する(&S)",IDC_SHOWALLPROCESSES,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,191,111,10
|
||||
END
|
||||
|
||||
|
@ -233,8 +233,8 @@ BEGIN
|
|||
ES_READONLY | ES_NUMBER | NOT WS_BORDER | NOT WS_TABSTOP
|
||||
GROUPBOX "CPU 使用率の履歴",IDC_CPU_USAGE_HISTORY_FRAME,74,5,168,54,0,WS_EX_TRANSPARENT
|
||||
GROUPBOX "メモリ使用量の履歴",IDC_MEMORY_USAGE_HISTORY_FRAME,74,63,168,54,0,WS_EX_TRANSPARENT
|
||||
PUSHBUTTON "CPU 使用率の表 示",IDC_CPU_USAGE_GRAPH,12,17,47,37,NOT WS_TABSTOP,WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "メモリ使用量の表 示",IDC_MEM_USAGE_GRAPH,12,75,47,37,NOT WS_TABSTOP,WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "CPU 使用率の表示",IDC_CPU_USAGE_GRAPH,12,17,47,37,NOT WS_TABSTOP,WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "メモリ使用量の表示",IDC_MEM_USAGE_GRAPH,12,75,47,37,NOT WS_TABSTOP,WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "CPU 使用率の履歴",IDC_CPU_USAGE_HISTORY_GRAPH,81,17,
|
||||
153,37,NOT WS_TABSTOP,WS_EX_CLIENTEDGE
|
||||
PUSHBUTTON "メモリ使用量の履歴",IDC_MEM_USAGE_HISTORY_GRAPH,81,75,
|
||||
|
@ -334,7 +334,7 @@ FONT 9, "MS UI Gothic"
|
|||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,84,178,50,14
|
||||
PUSHBUTTON "キャンセル",IDCANCEL,138,178,50,14
|
||||
LTEXT "タスク マネージャの [プロセス] ページに表 示する列を選択します。",
|
||||
LTEXT "タスク マネージャの [プロセス] ページに表示する列を選択します。",
|
||||
IDC_STATIC,7,7,181,17
|
||||
CONTROL "イメージ名(&I)",IDC_IMAGENAME,"Button",BS_AUTOCHECKBOX |
|
||||
WS_DISABLED | WS_TABSTOP,7,28,56,10
|
||||
|
@ -517,41 +517,41 @@ END
|
|||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
ID_FILE_NEW "新しいプログラムを実行します"
|
||||
ID_OPTIONS_ALWAYSONTOP "最小化されない限り、常にタスク マネージャがほかのすべてのウィンドウよりも手前に表 示されます"
|
||||
ID_OPTIONS_ALWAYSONTOP "最小化されない限り、常にタスク マネージャがほかのすべてのウィンドウよりも手前に表示されます"
|
||||
ID_OPTIONS_MINIMIZEONUSE
|
||||
"[切り替え] 操作を実行すると、タスク マネージャが最小化されます"
|
||||
ID_OPTIONS_HIDEWHENMINIMIZED "最小化されたときに、タスク マネージャを隠します"
|
||||
ID_VIEW_REFRESH "[更新の頻度] の設定にかかわらず、今すぐタスク マネージャを更新します"
|
||||
ID_VIEW_LARGE "大きいアイコンを使ってタスクを表 示します"
|
||||
ID_VIEW_SMALL "小さいアイコンを使ってタスクを表 示します"
|
||||
ID_VIEW_DETAILS "各タスクの情報を表 示します"
|
||||
ID_VIEW_UPDATESPEED_HIGH "毎秒 2 回表 示を更新します"
|
||||
ID_VIEW_UPDATESPEED_NORMAL "2 秒に 1 回表 示を更新します"
|
||||
ID_VIEW_UPDATESPEED_LOW "4 秒に 1 回表 示を更新します"
|
||||
ID_VIEW_LARGE "大きいアイコンを使ってタスクを表示します"
|
||||
ID_VIEW_SMALL "小さいアイコンを使ってタスクを表示します"
|
||||
ID_VIEW_DETAILS "各タスクの情報を表示します"
|
||||
ID_VIEW_UPDATESPEED_HIGH "毎秒 2 回表示を更新します"
|
||||
ID_VIEW_UPDATESPEED_NORMAL "2 秒に 1 回表示を更新します"
|
||||
ID_VIEW_UPDATESPEED_LOW "4 秒に 1 回表示を更新します"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
ID_VIEW_UPDATESPEED_PAUSED "表 示を自動的に更新しません"
|
||||
ID_VIEW_UPDATESPEED_PAUSED "表示を自動的に更新しません"
|
||||
ID_WINDOWS_TILEHORIZONTALLY
|
||||
"デスクトップ上でウィンドウを重ならないように上下に並べて表 示します"
|
||||
ID_WINDOWS_TILEVERTICALLY "デスクトップ上でウィンドウを重ならないように左右に並べて表 示します"
|
||||
"デスクトップ上でウィンドウを重ならないように上下に並べて表示します"
|
||||
ID_WINDOWS_TILEVERTICALLY "デスクトップ上でウィンドウを重ならないように左右に並べて表示します"
|
||||
ID_WINDOWS_MINIMIZE "ウィンドウを最小化します"
|
||||
ID_WINDOWS_MAXIMIZE "ウィンドウを最大化します"
|
||||
ID_WINDOWS_CASCADE "デスクトップ上でウィンドウを重ねて表 示します"
|
||||
ID_WINDOWS_BRINGTOFRONT "ウィンドウを手前に表 示しますが、切り替えません。"
|
||||
ID_HELP_TOPICS "タスク マネージャのヘルプ トピックを表 示します"
|
||||
ID_HELP_ABOUT "プログラム情報、バージョン番号、著作権を表 示します"
|
||||
ID_WINDOWS_CASCADE "デスクトップ上でウィンドウを重ねて表示します"
|
||||
ID_WINDOWS_BRINGTOFRONT "ウィンドウを手前に表示しますが、切り替えません。"
|
||||
ID_HELP_TOPICS "タスク マネージャのヘルプ トピックを表示します"
|
||||
ID_HELP_ABOUT "プログラム情報、バージョン番号、著作権を表示します"
|
||||
ID_FILE_EXIT "タスク マネージャ アプリケーションを終了します"
|
||||
ID_OPTIONS_SHOW16BITTASKS
|
||||
"16 ビット タスクを、関連付けられた ntvdm.exe の下に表 示します"
|
||||
ID_VIEW_SELECTCOLUMNS "[プロセス] ページに表 示する列を選択します"
|
||||
ID_VIEW_SHOWKERNELTIMES "カーネル時間をパフォーマンス グラフ上に表 示します"
|
||||
"16 ビット タスクを、関連付けられた ntvdm.exe の下に表示します"
|
||||
ID_VIEW_SELECTCOLUMNS "[プロセス] ページに表示する列を選択します"
|
||||
ID_VIEW_SHOWKERNELTIMES "カーネル時間をパフォーマンス グラフ上に表示します"
|
||||
ID_VIEW_CPUHISTORY_ONEGRAPHALL
|
||||
"1 つの履歴グラフで CPU 使用率の合計を表 示します"
|
||||
ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "CPU 使用率の履歴を CPU ごとにグラフで表 示します"
|
||||
"1 つの履歴グラフで CPU 使用率の合計を表示します"
|
||||
ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "CPU 使用率の履歴を CPU ごとにグラフで表示します"
|
||||
ID_APPLICATION_PAGE_SWITCHTO
|
||||
"タスクを手前に表 示し、フォーカスを切り替えます"
|
||||
"タスクを手前に表示し、フォーカスを切り替えます"
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
|
@ -611,7 +611,7 @@ BEGIN
|
|||
IDS_TAB_IOWRITESBYTES "I/O 書き込みバイト数"
|
||||
IDS_TAB_IOOTHERBYTES "I/O その他のバイト数"
|
||||
IDS_MENU_SELECTCOLUMNS "列の選択(&S)..."
|
||||
IDS_MENU_16BITTASK "16 ビット タスクの表 示(&S)"
|
||||
IDS_MENU_16BITTASK "16 ビット タスクの表示(&S)"
|
||||
IDS_MENU_WINDOWS "ウィンドウ(&W)"
|
||||
IDS_MENU_LARGEICONS "大きいアイコン(&G)"
|
||||
IDS_MENU_SMALLICONS "小さいアイコン(&M)"
|
||||
|
@ -619,19 +619,19 @@ BEGIN
|
|||
IDS_MENU_ONEGRAPHALLCPUS "すべての CPU で 1 グラフ(&O)"
|
||||
IDS_MENU_ONEGRAPHPERCPU "CPU ごとに 1 グラフ(&P)"
|
||||
IDS_MENU_CPUHISTORY "CPU 履歴(&C)"
|
||||
IDS_MENU_SHOWKERNELTIMES "カーネル時間を表 示する(&S)"
|
||||
IDS_MENU_SHOWKERNELTIMES "カーネル時間を表示する(&S)"
|
||||
IDS_CREATENEWTASK "新しいタスクの作成"
|
||||
IDS_CREATENEWTASK_DESC "実行するプログラム名、または開くフォルダやドキュメント名、インターネット リソ ース名を入力してください。"
|
||||
IDS_CREATENEWTASK_DESC "実行するプログラム名、または開くフォルダやドキュメント名、インターネット リソース名を入力してください。"
|
||||
IDS_MSG_ACCESSPROCESSAFF "プロセスの関係へのアクセスまたは設定ができません"
|
||||
IDS_MSG_PROCESSONEPRO "プロセスは、少なくとも 1 つのプロセッサと関係を持たなければなりません。"
|
||||
IDS_MSG_INVALIDOPTION "無効なオプション"
|
||||
IDS_MSG_UNABLEDEBUGPROCESS "デバッガを添付できません"
|
||||
IDS_MSG_WARNINGDEBUG "警告: このプロセスをデバッグすると、データが失われる可能 性があります。\nデバッガを添付しますか?"
|
||||
IDS_MSG_WARNINGDEBUG "警告: このプロセスをデバッグすると、データが失われる可能性があります。\nデバッガを添付しますか?"
|
||||
IDS_MSG_TASKMGRWARNING "タスク マネージャの警告"
|
||||
IDS_MSG_WARNINGTERMINATING "警告: プロセスを終了すると、データが失われたり、システムが\n不安定になったりするなどの、予 期しない結果になることがあります。\nプロセスを終了する前に、状態またはデータを保存するかどうかの\n確認メッセージは表 示されません。プロセスを終了しますか?"
|
||||
IDS_MSG_WARNINGTERMINATING "警告: プロセスを終了すると、データが失われたり、システムが\n不安定になったりするなどの、予期しない結果になることがあります。\nプロセスを終了する前に、状態またはデータを保存するかどうかの\n確認メッセージは表示されません。プロセスを終了しますか?"
|
||||
IDS_MSG_UNABLETERMINATEPRO "プロセスを終了できません"
|
||||
IDS_MSG_UNABLECHANGEPRIORITY "優先度を変更できません"
|
||||
IDS_MSG_WARNINGCHANGEPRIORITY "警告: このプロセスの優先度クラスを変更すると、システムが不安定に\nなるなど、予 期しない結果になることがあります。\n優先度クラスを変更しますか?"
|
||||
IDS_MSG_WARNINGCHANGEPRIORITY "警告: このプロセスの優先度クラスを変更すると、システムが不安定に\nなるなど、予期しない結果になることがあります。\n優先度クラスを変更しますか?"
|
||||
IDS_MSG_TRAYICONCPUUSAGE "CPU 使用率: %d%%"
|
||||
IDS_STATUS_MEMUSAGE "メモリ使用量: %dKB / %dKB"
|
||||
IDS_STATUS_CPUUSAGE "CPU 使用率: %3d%%"
|
||||
|
|
|
@ -173,7 +173,7 @@ END
|
|||
IDD_TABSTOPS DIALOG 30, 20, 200, 110
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Tabs"
|
||||
FONT 8, "MS SHell DLg"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Tab stops", -1, 10, 10, 120, 90
|
||||
COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
/*
|
||||
* Turkish Resources for Wordpad
|
||||
*
|
||||
* Copyright 2006 Fatih Aþýcý <fasici@linux-sevenler.org>
|
||||
* Copyright 2006 Fatih Aşıcı <fasici@linux-sevenler.org>
|
||||
* Copyright 2013 Erdem Ersoy (eersoy93)
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -20,78 +21,78 @@
|
|||
|
||||
#include "wordpad.h"
|
||||
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_NEUTRAL
|
||||
|
||||
IDM_MAINMENU MENU
|
||||
BEGIN
|
||||
POPUP "&Dosya"
|
||||
POPUP "&Kütük"
|
||||
BEGIN
|
||||
MENUITEM "&Yeni...\tCtrl+N", ID_FILE_NEW
|
||||
MENUITEM "&Aç...\tCtrl+O", ID_FILE_OPEN
|
||||
MENUITEM "&Aç...\tCtrl+O", ID_FILE_OPEN
|
||||
MENUITEM "&Kaydet\tCtrl+S", ID_FILE_SAVE
|
||||
MENUITEM "&Farklý Kaydet...", ID_FILE_SAVEAS
|
||||
MENUITEM "Ay&rı Kaydet...", ID_FILE_SAVEAS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Print...\tCtrl+P", ID_PRINT
|
||||
MENUITEM "Print previe&w...", ID_PREVIEW
|
||||
MENUITEM "Pag&e setup...", ID_PRINTSETUP
|
||||
MENUITEM "Ya&zdır...\tCtrl+P", ID_PRINT
|
||||
MENUITEM "&Baskı Önizleme...", ID_PREVIEW
|
||||
MENUITEM "&Sayfa Yapısı...", ID_PRINTSETUP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Çýk", ID_FILE_EXIT
|
||||
MENUITEM "&Çıkış", ID_FILE_EXIT
|
||||
END
|
||||
POPUP "&Düzen"
|
||||
POPUP "&Düzen"
|
||||
BEGIN
|
||||
MENUITEM "&Geri Al\tCtrl+Z", ID_EDIT_UNDO
|
||||
MENUITEM "&Yinele\tCtrl+Y", ID_EDIT_REDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Ke&s\tCtrl+X", ID_EDIT_CUT
|
||||
MENUITEM "&Kopyala\tCtrl+C", ID_EDIT_COPY
|
||||
MENUITEM "Ya&pýþtýr\tCtrl+V", ID_EDIT_PASTE
|
||||
MENUITEM "&Kes\tCtrl+X", ID_EDIT_CUT
|
||||
MENUITEM "&Çoğalt\tCtrl+C", ID_EDIT_COPY
|
||||
MENUITEM "Ya&pıştır\tCtrl+V", ID_EDIT_PASTE
|
||||
MENUITEM "&Sil\tDel", ID_EDIT_CLEAR
|
||||
MENUITEM "&Tümünü seç\tCtrl+A", ID_EDIT_SELECTALL
|
||||
MENUITEM "&Tümünü Seç\tCtrl+A", ID_EDIT_SELECTALL
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Find...\tCtrl+F", ID_FIND
|
||||
MENUITEM "Find &next\tF3", ID_FIND_NEXT
|
||||
MENUITEM "&Replace...\tCtrl+H", ID_REPLACE
|
||||
MENUITEM "&Ara\tCtrl+F", ID_FIND
|
||||
MENUITEM "S&onrakini Ara\tF3", ID_FIND_NEXT
|
||||
MENUITEM "&Değiştir...\tCtrl+H", ID_REPLACE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Salt-&okunur", ID_EDIT_READONLY
|
||||
MENUITEM "&Deðiþmiþ", ID_EDIT_MODIFIED
|
||||
MENUITEM "Sa< Okunur", ID_EDIT_READONLY
|
||||
MENUITEM "D&eğiştirilmiş", ID_EDIT_MODIFIED
|
||||
MENUITEM SEPARATOR
|
||||
POPUP "D&iðerleri"
|
||||
POPUP "D&iğer Seçenekler"
|
||||
BEGIN
|
||||
MENUITEM "Seçim &bilgisi", ID_EDIT_SELECTIONINFO
|
||||
MENUITEM "Karakter bi&çimi", ID_EDIT_CHARFORMAT
|
||||
MENUITEM "&Öntanýmlý kar. biçimi", ID_EDIT_DEFCHARFORMAT
|
||||
MENUITEM "Paragra&f biçimi", ID_EDIT_PARAFORMAT
|
||||
MENUITEM "&Metni al", ID_EDIT_GETTEXT
|
||||
MENUITEM "&Seçim Bilgisi", ID_EDIT_SELECTIONINFO
|
||||
MENUITEM "&Damga Biçimi", ID_EDIT_CHARFORMAT
|
||||
MENUITEM "&Öntanımlı Damga Biçimi", ID_EDIT_DEFCHARFORMAT
|
||||
MENUITEM "&Paragraf Biçimi", ID_EDIT_PARAFORMAT
|
||||
MENUITEM "&Metni Al", ID_EDIT_GETTEXT
|
||||
END
|
||||
END
|
||||
POPUP "&View"
|
||||
POPUP "&Görünüm"
|
||||
BEGIN
|
||||
MENUITEM "&Toolbar", ID_TOGGLE_TOOLBAR
|
||||
MENUITEM "&Formatbar", ID_TOGGLE_FORMATBAR
|
||||
MENUITEM "&Ruler", ID_TOGGLE_RULER
|
||||
MENUITEM "&Statusbar", ID_TOGGLE_STATUSBAR
|
||||
MENUITEM "&Araç Çubuğu", ID_TOGGLE_TOOLBAR
|
||||
MENUITEM "&Biçim Çubuğu", ID_TOGGLE_FORMATBAR
|
||||
MENUITEM "&Çizgilik", ID_TOGGLE_RULER
|
||||
MENUITEM "&Durum Çubuğu", ID_TOGGLE_STATUSBAR
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Options...", ID_VIEWPROPERTIES
|
||||
MENUITEM "A&yarlar...", ID_VIEWPROPERTIES
|
||||
END
|
||||
POPUP "&Insert"
|
||||
POPUP "&Ekle"
|
||||
BEGIN
|
||||
MENUITEM "&Date and time...", ID_DATETIME
|
||||
MENUITEM "&Tarih veya Saat...",ID_DATETIME
|
||||
END
|
||||
POPUP "&Biçim"
|
||||
POPUP "&Biçim"
|
||||
BEGIN
|
||||
MENUITEM "&Font...", ID_FONTSETTINGS
|
||||
MENUITEM "&Bullet points", ID_BULLET
|
||||
MENUITEM "&Paragraph...", ID_PARAFORMAT
|
||||
MENUITEM "&Tabs...", ID_TABSTOPS
|
||||
MENUITEM "&Yazı Türü...", ID_FONTSETTINGS
|
||||
MENUITEM "&Madde İmi", ID_BULLET
|
||||
MENUITEM "&Paragraf...", ID_PARAFORMAT
|
||||
MENUITEM "&Sekmeler...", ID_TABSTOPS
|
||||
POPUP "&Arkaplan"
|
||||
BEGIN
|
||||
MENUITEM "S&istem\tCtrl+1", ID_BACK_1
|
||||
MENUITEM "&Sarýmtýrak\tCtrl+2", ID_BACK_2
|
||||
MENUITEM "&Dizge Rengi\tCtrl+1", ID_BACK_1
|
||||
MENUITEM "&Sarımtırak\tCtrl+2", ID_BACK_2
|
||||
END
|
||||
END
|
||||
POPUP "&Help"
|
||||
POPUP "&Yardım"
|
||||
BEGIN
|
||||
MENUITEM "&About Wine Wordpad", ID_ABOUT
|
||||
MENUITEM "&Hakkında", ID_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
|
@ -99,12 +100,12 @@ IDM_POPUP MENU
|
|||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "Ke&s", ID_EDIT_CUT
|
||||
MENUITEM "&Kopyala", ID_EDIT_COPY
|
||||
MENUITEM "Ya&pýþtýr", ID_EDIT_PASTE
|
||||
MENUITEM "&Kes", ID_EDIT_CUT
|
||||
MENUITEM "&Çoğalt", ID_EDIT_COPY
|
||||
MENUITEM "&Yapıştır", ID_EDIT_PASTE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&Bullet points", ID_BULLET
|
||||
MENUITEM "&Paragraph...", ID_PARAFORMAT
|
||||
MENUITEM "&Madde İmi", ID_BULLET
|
||||
MENUITEM "&Paragraf...", ID_PARAFORMAT
|
||||
END
|
||||
END
|
||||
|
||||
|
@ -112,22 +113,154 @@ IDM_COLOR_POPUP MENU
|
|||
BEGIN
|
||||
POPUP ""
|
||||
BEGIN
|
||||
MENUITEM "Siyah", ID_COLOR_BLACK
|
||||
MENUITEM "Koyu Kýrmýzý",ID_COLOR_MAROON
|
||||
MENUITEM "Yeþil", ID_COLOR_GREEN
|
||||
MENUITEM "Koyu Sarý", ID_COLOR_OLIVE
|
||||
MENUITEM "Koyu Mavi", ID_COLOR_NAVY
|
||||
MENUITEM "Mor", ID_COLOR_PURPLE
|
||||
MENUITEM "Deniz Mavisi",ID_COLOR_TEAL
|
||||
MENUITEM "Gri", ID_COLOR_GRAY
|
||||
MENUITEM "Gümüþ", ID_COLOR_SILVER
|
||||
MENUITEM "Kýrmýzý", ID_COLOR_RED
|
||||
MENUITEM "Parlak Yeþil",ID_COLOR_LIME
|
||||
MENUITEM "Sarý", ID_COLOR_YELLOW
|
||||
MENUITEM "Mavi", ID_COLOR_BLUE
|
||||
MENUITEM "Pembe", ID_COLOR_FUCHSIA
|
||||
MENUITEM "Turkuaz", ID_COLOR_AQUA
|
||||
MENUITEM "Beyaz", ID_COLOR_WHITE
|
||||
MENUITEM "Automatic", ID_COLOR_AUTOMATIC
|
||||
MENUITEM "Kara", ID_COLOR_BLACK
|
||||
MENUITEM "Vişne Çürüğü", ID_COLOR_MAROON
|
||||
MENUITEM "Yeşil", ID_COLOR_GREEN
|
||||
MENUITEM "Zeytinyağı", ID_COLOR_OLIVE
|
||||
MENUITEM "Deniz Mavisi", ID_COLOR_NAVY
|
||||
MENUITEM "Mor", ID_COLOR_PURPLE
|
||||
MENUITEM "Çamurcun", ID_COLOR_TEAL
|
||||
MENUITEM "Kül Rengi", ID_COLOR_GRAY
|
||||
MENUITEM "Gümüş", ID_COLOR_SILVER
|
||||
MENUITEM "Al", ID_COLOR_RED
|
||||
MENUITEM "Misket limonu", ID_COLOR_LIME
|
||||
MENUITEM "Sarı", ID_COLOR_YELLOW
|
||||
MENUITEM "Mavi", ID_COLOR_BLUE
|
||||
MENUITEM "Küpe Çiçeği", ID_COLOR_FUCHSIA
|
||||
MENUITEM "Turkuaz", ID_COLOR_AQUA
|
||||
MENUITEM "Beyaz", ID_COLOR_WHITE
|
||||
MENUITEM "Dizge Rengi", ID_COLOR_AUTOMATIC
|
||||
END
|
||||
END
|
||||
|
||||
IDD_DATETIME DIALOG 30, 20, 130, 80
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Zaman"
|
||||
FONT 10, "MS Sans Serif"
|
||||
BEGIN
|
||||
LTEXT "Var Olan Biçimler:",-1,3,2,100,15
|
||||
LISTBOX IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
|
||||
PUSHBUTTON "&Tamam",IDOK,87,12,40,12
|
||||
PUSHBUTTON "&Vazgeç",IDCANCEL,87,26,40,12
|
||||
END
|
||||
|
||||
IDD_NEWFILE DIALOG 30, 20, 140, 80
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Yeni"
|
||||
FONT 10, "MS Sans Serif"
|
||||
BEGIN
|
||||
LTEXT "Yeni belge türü:",-1,3,2,100,15
|
||||
LISTBOX IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
|
||||
PUSHBUTTON "&Tamam",IDOK,97,12,40,12
|
||||
PUSHBUTTON "&Vazgeç",IDCANCEL,97,26,40,12
|
||||
END
|
||||
|
||||
IDD_PARAFORMAT DIALOG 30, 20, 200, 110
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Paragraf Düzeni"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Pay", -1, 10, 10, 120, 68
|
||||
LTEXT "Sol", -1, 15, 22, 40, 13
|
||||
EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
|
||||
LTEXT "Sağ", -1, 15, 40, 40, 13
|
||||
EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
|
||||
LTEXT "İlk satır", -1, 15, 58, 40, 13
|
||||
EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
|
||||
LTEXT "Hizâlama", -1, 15, 87, 40, 13
|
||||
COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 60, CBS_DROPDOWNLIST
|
||||
PUSHBUTTON "&Tamam", IDOK, 137, 15, 50, 15
|
||||
PUSHBUTTON "&Vazgeç", IDCANCEL, 137, 33, 50, 15
|
||||
END
|
||||
|
||||
IDD_TABSTOPS DIALOG 30, 20, 200, 110
|
||||
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Sekmeler"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Sekme Durakları", -1, 10, 10, 120, 90
|
||||
COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
|
||||
DEFPUSHBUTTON "&Ekle", ID_TAB_ADD, 20, 80, 45, 15
|
||||
PUSHBUTTON "&Sil", ID_TAB_DEL, 72, 80, 45, 15
|
||||
PUSHBUTTON "&Tamam", IDOK, 137, 15, 50, 15
|
||||
PUSHBUTTON "&Vazgeç", IDCANCEL, 137, 33, 50, 15
|
||||
PUSHBUTTON "&Hepsini Sil", ID_TAB_EMPTY, 137, 51, 50, 15
|
||||
END
|
||||
|
||||
IDD_FORMATOPTS DIALOG 0, 0, 280, 110
|
||||
STYLE DS_SYSMODAL
|
||||
CAPTION ""
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
GROUPBOX "Satır Kaydırma", -1, 10, 10, 130, 85
|
||||
RADIOBUTTON "&Kaydırma yok", IDC_PAGEFMT_WN, 18, 25, 117, 15
|
||||
RADIOBUTTON "&Pencere kenarlığına kadar", IDC_PAGEFMT_WW, 18, 45, 117, 15
|
||||
RADIOBUTTON "&Çizgiliğe kadar", IDC_PAGEFMT_WM, 18, 65, 117, 15
|
||||
GROUPBOX "Çubuklar", -1, 150, 10, 120, 85
|
||||
CHECKBOX "&Araç Çubuğu", IDC_PAGEFMT_TB, 160, 20, 80, 15
|
||||
CHECKBOX "&Biçim Çubuğu", IDC_PAGEFMT_FB, 160, 38, 80, 15
|
||||
CHECKBOX "Ç&izgilik", IDC_PAGEFMT_RU, 160, 56, 80, 15
|
||||
CHECKBOX "&Durum Çubuğu", IDC_PAGEFMT_SB, 160, 74, 80, 15
|
||||
LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_ALL_FILES, "Tüm Kütükler (*.*)"
|
||||
STRING_TEXT_FILES_TXT, "Metin Belgeleri (*.txt)"
|
||||
STRING_TEXT_FILES_UNICODE_TXT, "Unicode Metin Belgeleri (*.txt)"
|
||||
STRING_RICHTEXT_FILES_RTF, "Zengin Metin Belgeleri (*.rtf)"
|
||||
STRING_NEWFILE_RICHTEXT, "Zengin Metin Belgesi"
|
||||
STRING_NEWFILE_TXT, "Metin Belgesi"
|
||||
STRING_NEWFILE_TXT_UNICODE, "Unicode Metin Belgesi"
|
||||
STRING_PRINTER_FILES_PRN, "Yazıcı Dosyaları (*.PRN)"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_ALIGN_LEFT, "Sol"
|
||||
STRING_ALIGN_RIGHT, "Sağ"
|
||||
STRING_ALIGN_CENTER, "Orta"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_VIEWPROPS_TITLE, "Ayarlar"
|
||||
STRING_VIEWPROPS_TEXT, "Metin"
|
||||
STRING_VIEWPROPS_RICHTEXT, "Zengin Metin"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_PREVIEW_PRINT, "Yazdır"
|
||||
STRING_PREVIEW_NEXTPAGE, "Sonraki Sayfa"
|
||||
STRING_PREVIEW_PREVPAGE, "Önceki Sayfa"
|
||||
STRING_PREVIEW_TWOPAGES, "İkili"
|
||||
STRING_PREVIEW_ONEPAGE, "Tekli"
|
||||
STRING_PREVIEW_ZOOMIN, "Yakınlaştır"
|
||||
STRING_PREVIEW_ZOOMOUT, "Uzaklaştır"
|
||||
STRING_PREVIEW_CLOSE, "Tamam"
|
||||
STRING_PREVIEW_PAGE, "Sayfa"
|
||||
STRING_PREVIEW_PAGES, "Sayfalar"
|
||||
STRING_UNITS_CM, "cm"
|
||||
STRING_UNITS_IN, "in"
|
||||
STRING_UNITS_INCH, "inç"
|
||||
STRING_UNITS_PT, "pt"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
STRING_DEFAULT_FILENAME, "Adsız"
|
||||
STRING_PROMPT_SAVE_CHANGES, "'%s' için değişiklikler kaydedilsin mi?"
|
||||
STRING_SEARCH_FINISHED, "Belge araması tamamlandı."
|
||||
STRING_LOAD_RICHED_FAILED, "Zengin metin kitaplığının yüklenmesi başarısız oldu."
|
||||
STRING_SAVE_LOSEFORMATTING, "Eğer düz metin belgesi olarak kaydedilirse yapılan tüm değişiklikler kaybolacak. Devam etmek istiyor musunuz?"
|
||||
STRING_INVALID_NUMBER, "Geçersiz sayı biçimi."
|
||||
STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE içeren belgeler desteklenmiyor."
|
||||
STRING_WRITE_FAILED, "Belgenin kaydedilmesi başarısız oldu."
|
||||
STRING_WRITE_ACCESS_DENIED, "Bu kütüğü kaydetme yetkiniz yok."
|
||||
STRING_OPEN_FAILED, "Belgenin açılması başarısız oldu."
|
||||
STRING_OPEN_ACCESS_DENIED, "Bu kütüğü açma yetkiniz yok."
|
||||
STRING_PRINTING_NOT_IMPLEMENTED, "Yazdırma seçeneği daha tamamlanmadı."
|
||||
STRING_MAX_TAB_STOPS, "En fazla 32 adet sekme durağı ekleyebilirsiniz."
|
||||
END
|
||||
|
|
|
@ -77,9 +77,6 @@ IDC_ZOOM CURSOR "zoom.cur"
|
|||
#ifdef LANGUAGE_PL_PL
|
||||
#include "Pl.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "Tr.rc"
|
||||
#endif
|
||||
|
||||
/* UTF-8 */
|
||||
#ifdef LANGUAGE_DA_DK
|
||||
|
@ -124,6 +121,9 @@ IDC_ZOOM CURSOR "zoom.cur"
|
|||
#ifdef LANGUAGE_SV_SE
|
||||
#include "Sv.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "Tr.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "Uk.rc"
|
||||
#endif
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Copyright 2005
|
||||
* Turkish language support
|
||||
*
|
||||
* Stefan Leichter
|
||||
* Copyright (C) 2013 Erdem Ersoy (eersoy93)
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -18,10 +18,11 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#define WINE_FILENAME_STR "urlmon.dll"
|
||||
#define WINE_FILEVERSION 6,0,2800,1485
|
||||
#define WINE_FILEVERSION_STR "6.0.2800.1485"
|
||||
#define WINE_PRODUCTVERSION 6,0,2800,1485
|
||||
#define WINE_PRODUCTVERSION_STR "6.0.2800.1485"
|
||||
#include "resources.h"
|
||||
|
||||
#include "wine/wine_common_ver.rc"
|
||||
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
||||
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_FAILED, "Zengin Metin Düzenleyicisi'nin açılması başarısız oldu."
|
||||
}
|
|
@ -84,6 +84,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
|||
#ifdef LANGUAGE_SR_SP
|
||||
#include "Sr.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_TR_TR
|
||||
#include "Tr.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_UK_UA
|
||||
#include "Uk.rc"
|
||||
#endif
|
||||
|
|
|
@ -377,11 +377,15 @@ INT cmd_copy(LPTSTR param)
|
|||
|
||||
if (size > 512)
|
||||
{
|
||||
TCHAR *old_evar = evar;
|
||||
evar = cmd_realloc(evar,size * sizeof(TCHAR) );
|
||||
if (evar!=NULL)
|
||||
size = GetEnvironmentVariable (_T("COPYCMD"), evar, size);
|
||||
else
|
||||
{
|
||||
size=0;
|
||||
evar = old_evar;
|
||||
}
|
||||
}
|
||||
|
||||
/* check see if we did get any env variable */
|
||||
|
|
|
@ -83,7 +83,7 @@ INT CommandEcho (LPTSTR param)
|
|||
{
|
||||
/* skip the first character */
|
||||
ConOutPuts(param + 1);
|
||||
ConOutPuts(_T("\n"));
|
||||
ConOutPuts(_T("\r\n"));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -491,10 +491,16 @@ int __cdecl compare(const void *arg1,const void *arg2)
|
|||
INT ret;
|
||||
|
||||
File1 = cmd_alloc(sizeof(FileName));
|
||||
File2 = cmd_alloc(sizeof(FileName));
|
||||
if(!File1 || !File2)
|
||||
if (!File1)
|
||||
return 0;
|
||||
|
||||
File2 = cmd_alloc(sizeof(FileName));
|
||||
if(!File2)
|
||||
{
|
||||
cmd_free(File1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
memcpy(File1,arg1,sizeof(FileName));
|
||||
memcpy(File2,arg2,sizeof(FileName));
|
||||
|
||||
|
@ -660,14 +666,16 @@ VOID CompleteFilename (LPTSTR strIN, BOOL bNext, LPTSTR strOut, UINT cusor)
|
|||
/* aseemble a list of all files names */
|
||||
do
|
||||
{
|
||||
FileName * oldFileList = FileList;
|
||||
|
||||
if(!_tcscmp (file.cFileName, _T(".")) ||
|
||||
!_tcscmp (file.cFileName, _T("..")))
|
||||
continue;
|
||||
|
||||
/* Don't show files when they are doing 'cd' or 'rd' */
|
||||
if(!ShowAll &&
|
||||
file.dwFileAttributes != 0xFFFFFFFF &&
|
||||
!(file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
file.dwFileAttributes != 0xFFFFFFFF &&
|
||||
!(file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
@ -677,6 +685,8 @@ VOID CompleteFilename (LPTSTR strIN, BOOL bNext, LPTSTR strOut, UINT cusor)
|
|||
|
||||
if(FileList == NULL)
|
||||
{
|
||||
/* Don't leak old buffer */
|
||||
cmd_free(oldFileList);
|
||||
/* Assemble the orginal string and return */
|
||||
_tcscpy(strOut,szOrginal);
|
||||
FindClose(hFile);
|
||||
|
@ -688,7 +698,7 @@ VOID CompleteFilename (LPTSTR strIN, BOOL bNext, LPTSTR strOut, UINT cusor)
|
|||
|
||||
} while(FindNextFile(hFile,&file));
|
||||
|
||||
FindClose(hFile);
|
||||
FindClose(hFile);
|
||||
|
||||
/* Check the size of the list to see if we
|
||||
found any matches */
|
||||
|
|
|
@ -4,9 +4,9 @@ BEGIN
|
|||
|
||||
IDS_UsageMessage, "%s\n\n使用法: regsvr32 [/u] [/s] [/c] [/n] [/i[:コマンド ライン]] DLL名\n\
|
||||
/u - サーバーを登録解除する\n\
|
||||
/s - サイレント; メッセージ ボックスを表 示しない\n\
|
||||
/c - コンソ ール出力\n\
|
||||
/i - 省略可能 な [コマンド ライン] を引数として DllInstall を呼び出す; /u と併用した場合は dll uninstall を呼び出す\n\
|
||||
/s - サイレント; メッセージ ボックスを表示しない\n\
|
||||
/c - コンソール出力\n\
|
||||
/i - 省略可能な [コマンド ライン] を引数として DllInstall を呼び出す; /u と併用した場合は dll uninstall を呼び出す\n\
|
||||
/n - DllRegisterServer を呼び出さない; このオプションは /i と併用する必要がある"
|
||||
|
||||
IDS_NoDllSpecified, "DLL 名が指定されていません。"
|
||||
|
@ -18,7 +18,7 @@ IDS_SwitchN_NoI, "フラグを認識できません: /n を指定する場
|
|||
IDS_DllNotLoaded, "LoadLibrary('%s') に失敗しました。\nGetLastError は 0x%08x を返しました。"
|
||||
|
||||
IDS_MissingEntry, "%s を読み込みましたが、%s エントリ ポイントが見つかりませんでした。\n\n\
|
||||
%s はエクスポートされていないか、%s の不正なバージョンがメモリ上にある可能 性があります。検出や削除をするため、PView の使用を検討してください。"
|
||||
%s はエクスポートされていないか、%s の不正なバージョンがメモリ上にある可能性があります。検出や削除をするため、PView の使用を検討してください。"
|
||||
|
||||
IDS_FailureMessage, "%s (%s の) に失敗しました。\n返ってきたコード: 0x%08x"
|
||||
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
|
||||
/*
|
||||
* Uncomment the line below to start services
|
||||
* using the SERVICE_START_PENDING state
|
||||
* using the SERVICE_START_PENDING state.
|
||||
*/
|
||||
// #define USE_SERVICE_START_PENDING
|
||||
#define USE_SERVICE_START_PENDING
|
||||
|
||||
/*
|
||||
* Uncomment the line below to use asynchronous IO operations
|
||||
|
@ -38,6 +38,7 @@ LIST_ENTRY ServiceListHead;
|
|||
static RTL_RESOURCE DatabaseLock;
|
||||
static DWORD ResumeCount = 1;
|
||||
|
||||
/* The critical section synchronizes service controls commands */
|
||||
static CRITICAL_SECTION ControlServiceCriticalSection;
|
||||
static DWORD PipeTimeout = 30000; /* 30 Seconds */
|
||||
|
||||
|
@ -359,7 +360,7 @@ ScmGetServiceEntryByResumeCount(DWORD dwResumeCount)
|
|||
|
||||
DWORD
|
||||
ScmCreateNewServiceRecord(LPCWSTR lpServiceName,
|
||||
PSERVICE *lpServiceRecord)
|
||||
PSERVICE* lpServiceRecord)
|
||||
{
|
||||
PSERVICE lpService = NULL;
|
||||
|
||||
|
@ -772,13 +773,11 @@ ScmCheckDriver(PSERVICE Service)
|
|||
|
||||
if (Service->Status.dwServiceType == SERVICE_KERNEL_DRIVER)
|
||||
{
|
||||
RtlInitUnicodeString(&DirName,
|
||||
L"\\Driver");
|
||||
RtlInitUnicodeString(&DirName, L"\\Driver");
|
||||
}
|
||||
else
|
||||
else // if (Service->Status.dwServiceType == SERVICE_FILE_SYSTEM_DRIVER)
|
||||
{
|
||||
RtlInitUnicodeString(&DirName,
|
||||
L"\\FileSystem");
|
||||
RtlInitUnicodeString(&DirName, L"\\FileSystem");
|
||||
}
|
||||
|
||||
InitializeObjectAttributes(&ObjectAttributes,
|
||||
|
@ -796,7 +795,7 @@ ScmCheckDriver(PSERVICE Service)
|
|||
}
|
||||
|
||||
BufferLength = sizeof(OBJECT_DIRECTORY_INFORMATION) +
|
||||
2 * MAX_PATH * sizeof(WCHAR);
|
||||
2 * MAX_PATH * sizeof(WCHAR);
|
||||
DirInfo = HeapAlloc(GetProcessHeap(),
|
||||
HEAP_ZERO_MEMORY,
|
||||
BufferLength);
|
||||
|
@ -1096,7 +1095,7 @@ Done:
|
|||
static DWORD
|
||||
ScmSendStartCommand(PSERVICE Service,
|
||||
DWORD argc,
|
||||
LPWSTR *argv)
|
||||
LPWSTR* argv)
|
||||
{
|
||||
PSCM_CONTROL_PACKET ControlPacket;
|
||||
SCM_REPLY_PACKET ReplyPacket;
|
||||
|
@ -1496,7 +1495,7 @@ ScmWaitForServiceConnect(PSERVICE Service)
|
|||
static DWORD
|
||||
ScmStartUserModeService(PSERVICE Service,
|
||||
DWORD argc,
|
||||
LPWSTR *argv)
|
||||
LPWSTR* argv)
|
||||
{
|
||||
PROCESS_INFORMATION ProcessInformation;
|
||||
STARTUPINFOW StartupInfo;
|
||||
|
@ -1512,6 +1511,7 @@ ScmStartUserModeService(PSERVICE Service,
|
|||
return ScmSendStartCommand(Service, argc, argv);
|
||||
}
|
||||
|
||||
/* Otherwise start its process */
|
||||
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
|
||||
StartupInfo.cb = sizeof(StartupInfo);
|
||||
ZeroMemory(&ProcessInformation, sizeof(ProcessInformation));
|
||||
|
@ -1551,9 +1551,7 @@ ScmStartUserModeService(PSERVICE Service,
|
|||
if (dwError == ERROR_SUCCESS)
|
||||
{
|
||||
/* Send start command */
|
||||
dwError = ScmSendStartCommand(Service,
|
||||
argc,
|
||||
argv);
|
||||
dwError = ScmSendStartCommand(Service, argc, argv);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1569,24 +1567,22 @@ ScmStartUserModeService(PSERVICE Service,
|
|||
}
|
||||
|
||||
|
||||
DWORD
|
||||
ScmStartService(PSERVICE Service, DWORD argc, LPWSTR *argv)
|
||||
static DWORD
|
||||
ScmLoadService(PSERVICE Service,
|
||||
DWORD argc,
|
||||
LPWSTR* argv)
|
||||
{
|
||||
PSERVICE_GROUP Group = Service->lpGroup;
|
||||
DWORD dwError = ERROR_SUCCESS;
|
||||
LPCWSTR ErrorLogStrings[2];
|
||||
WCHAR szErrorBuffer[32];
|
||||
|
||||
DPRINT("ScmStartService() called\n");
|
||||
|
||||
DPRINT("ScmLoadService() called\n");
|
||||
DPRINT("Start Service %p (%S)\n", Service, Service->lpServiceName);
|
||||
|
||||
EnterCriticalSection(&ControlServiceCriticalSection);
|
||||
|
||||
if (Service->Status.dwCurrentState != SERVICE_STOPPED)
|
||||
{
|
||||
DPRINT("Service %S is already running!\n", Service->lpServiceName);
|
||||
LeaveCriticalSection(&ControlServiceCriticalSection);
|
||||
return ERROR_SERVICE_ALREADY_RUNNING;
|
||||
}
|
||||
|
||||
|
@ -1602,7 +1598,7 @@ ScmStartService(PSERVICE Service, DWORD argc, LPWSTR *argv)
|
|||
Service->Status.dwCurrentState = SERVICE_RUNNING;
|
||||
}
|
||||
}
|
||||
else
|
||||
else // if (Service->Status.dwServiceType & (SERVICE_WIN32 | SERVICE_INTERACTIVE_PROCESS))
|
||||
{
|
||||
/* Start user-mode service */
|
||||
dwError = ScmCreateOrReferenceServiceImage(Service);
|
||||
|
@ -1625,9 +1621,7 @@ ScmStartService(PSERVICE Service, DWORD argc, LPWSTR *argv)
|
|||
}
|
||||
}
|
||||
|
||||
LeaveCriticalSection(&ControlServiceCriticalSection);
|
||||
|
||||
DPRINT("ScmStartService() done (Error %lu)\n", dwError);
|
||||
DPRINT("ScmLoadService() done (Error %lu)\n", dwError);
|
||||
|
||||
if (dwError == ERROR_SUCCESS)
|
||||
{
|
||||
|
@ -1677,18 +1671,81 @@ ScmStartService(PSERVICE Service, DWORD argc, LPWSTR *argv)
|
|||
}
|
||||
|
||||
|
||||
DWORD
|
||||
ScmStartService(PSERVICE Service,
|
||||
DWORD argc,
|
||||
LPWSTR* argv)
|
||||
{
|
||||
DWORD dwError = ERROR_SUCCESS;
|
||||
SC_RPC_LOCK Lock = NULL;
|
||||
|
||||
DPRINT("ScmStartService() called\n");
|
||||
DPRINT("Start Service %p (%S)\n", Service, Service->lpServiceName);
|
||||
|
||||
/* Acquire the service control critical section, to synchronize starts */
|
||||
EnterCriticalSection(&ControlServiceCriticalSection);
|
||||
|
||||
/*
|
||||
* Acquire the user service start lock while the service is starting, if
|
||||
* needed (i.e. if we are not starting it during the initialization phase).
|
||||
* If we don't success, bail out.
|
||||
*/
|
||||
if (!ScmInitialize)
|
||||
{
|
||||
dwError = ScmAcquireServiceStartLock(TRUE, &Lock);
|
||||
if (dwError != ERROR_SUCCESS) goto done;
|
||||
}
|
||||
|
||||
/* Really start the service */
|
||||
dwError = ScmLoadService(Service, argc, argv);
|
||||
|
||||
/* Release the service start lock, if needed, and the critical section */
|
||||
if (Lock) ScmReleaseServiceStartLock(&Lock);
|
||||
|
||||
done:
|
||||
LeaveCriticalSection(&ControlServiceCriticalSection);
|
||||
|
||||
DPRINT("ScmStartService() done (Error %lu)\n", dwError);
|
||||
|
||||
return dwError;
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
ScmAutoStartServices(VOID)
|
||||
{
|
||||
DWORD dwError = ERROR_SUCCESS;
|
||||
SC_RPC_LOCK Lock = NULL;
|
||||
|
||||
PLIST_ENTRY GroupEntry;
|
||||
PLIST_ENTRY ServiceEntry;
|
||||
PSERVICE_GROUP CurrentGroup;
|
||||
PSERVICE CurrentService;
|
||||
WCHAR szSafeBootServicePath[MAX_PATH];
|
||||
DWORD dwError;
|
||||
HKEY hKey;
|
||||
ULONG i;
|
||||
|
||||
/* Acquire the service control critical section, to synchronize starts */
|
||||
EnterCriticalSection(&ControlServiceCriticalSection);
|
||||
|
||||
/*
|
||||
* Acquire the user service start lock while the service is starting, if
|
||||
* needed (i.e. if we are not starting it during the initialization phase).
|
||||
* If we don't success, bail out.
|
||||
*/
|
||||
if (!ScmInitialize)
|
||||
{
|
||||
/*
|
||||
* Actually this code is never executed since we are called
|
||||
* at initialization time, so that ScmInitialize == TRUE.
|
||||
* But keep the code here if someday we are called later on
|
||||
* for whatever reason...
|
||||
*/
|
||||
dwError = ScmAcquireServiceStartLock(TRUE, &Lock);
|
||||
if (dwError != ERROR_SUCCESS) goto done;
|
||||
}
|
||||
|
||||
|
||||
/* Clear 'ServiceVisited' flag (or set if not to start in Safe Mode) */
|
||||
ServiceEntry = ServiceListHead.Flink;
|
||||
while (ServiceEntry != &ServiceListHead)
|
||||
|
@ -1779,7 +1836,7 @@ ScmAutoStartServices(VOID)
|
|||
(CurrentService->dwTag == CurrentGroup->TagArray[i]))
|
||||
{
|
||||
CurrentService->ServiceVisited = TRUE;
|
||||
ScmStartService(CurrentService, 0, NULL);
|
||||
ScmLoadService(CurrentService, 0, NULL);
|
||||
}
|
||||
|
||||
ServiceEntry = ServiceEntry->Flink;
|
||||
|
@ -1797,7 +1854,7 @@ ScmAutoStartServices(VOID)
|
|||
(CurrentService->ServiceVisited == FALSE))
|
||||
{
|
||||
CurrentService->ServiceVisited = TRUE;
|
||||
ScmStartService(CurrentService, 0, NULL);
|
||||
ScmLoadService(CurrentService, 0, NULL);
|
||||
}
|
||||
|
||||
ServiceEntry = ServiceEntry->Flink;
|
||||
|
@ -1817,7 +1874,7 @@ ScmAutoStartServices(VOID)
|
|||
(CurrentService->ServiceVisited == FALSE))
|
||||
{
|
||||
CurrentService->ServiceVisited = TRUE;
|
||||
ScmStartService(CurrentService, 0, NULL);
|
||||
ScmLoadService(CurrentService, 0, NULL);
|
||||
}
|
||||
|
||||
ServiceEntry = ServiceEntry->Flink;
|
||||
|
@ -1834,7 +1891,7 @@ ScmAutoStartServices(VOID)
|
|||
(CurrentService->ServiceVisited == FALSE))
|
||||
{
|
||||
CurrentService->ServiceVisited = TRUE;
|
||||
ScmStartService(CurrentService, 0, NULL);
|
||||
ScmLoadService(CurrentService, 0, NULL);
|
||||
}
|
||||
|
||||
ServiceEntry = ServiceEntry->Flink;
|
||||
|
@ -1848,6 +1905,13 @@ ScmAutoStartServices(VOID)
|
|||
CurrentService->ServiceVisited = FALSE;
|
||||
ServiceEntry = ServiceEntry->Flink;
|
||||
}
|
||||
|
||||
|
||||
/* Release the service start lock, if needed, and the critical section */
|
||||
if (Lock) ScmReleaseServiceStartLock(&Lock);
|
||||
|
||||
done:
|
||||
LeaveCriticalSection(&ControlServiceCriticalSection);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2895,7 +2895,6 @@ DWORD RStartServiceW(
|
|||
DWORD dwError = ERROR_SUCCESS;
|
||||
PSERVICE_HANDLE hSvc;
|
||||
PSERVICE lpService = NULL;
|
||||
SC_RPC_LOCK Lock = NULL;
|
||||
|
||||
#ifndef NDEBUG
|
||||
DWORD i;
|
||||
|
@ -2941,17 +2940,9 @@ DWORD RStartServiceW(
|
|||
if (lpService->bDeleted)
|
||||
return ERROR_SERVICE_MARKED_FOR_DELETE;
|
||||
|
||||
/* Acquire the service start lock until the service has been started */
|
||||
dwError = ScmAcquireServiceStartLock(TRUE, &Lock);
|
||||
if (dwError != ERROR_SUCCESS)
|
||||
return dwError;
|
||||
|
||||
/* Start the service */
|
||||
dwError = ScmStartService(lpService, argc, (LPWSTR*)argv);
|
||||
|
||||
/* Release the service start lock */
|
||||
ScmReleaseServiceStartLock(&Lock);
|
||||
|
||||
return dwError;
|
||||
}
|
||||
|
||||
|
@ -4171,7 +4162,6 @@ DWORD RStartServiceA(
|
|||
DWORD dwError = ERROR_SUCCESS;
|
||||
PSERVICE_HANDLE hSvc;
|
||||
PSERVICE lpService = NULL;
|
||||
SC_RPC_LOCK Lock = NULL;
|
||||
LPWSTR *lpVector = NULL;
|
||||
DWORD i;
|
||||
DWORD dwLength;
|
||||
|
@ -4244,17 +4234,9 @@ DWORD RStartServiceA(
|
|||
}
|
||||
}
|
||||
|
||||
/* Acquire the service start lock until the service has been started */
|
||||
dwError = ScmAcquireServiceStartLock(TRUE, &Lock);
|
||||
if (dwError != ERROR_SUCCESS)
|
||||
goto done;
|
||||
|
||||
/* Start the service */
|
||||
dwError = ScmStartService(lpService, argc, lpVector);
|
||||
|
||||
/* Release the service start lock */
|
||||
ScmReleaseServiceStartLock(&Lock);
|
||||
|
||||
done:
|
||||
/* Free the Unicode argument vector */
|
||||
if (lpVector != NULL)
|
||||
|
|
|
@ -22,6 +22,12 @@ int WINAPI RegisterServicesProcess(DWORD ServicesProcessId);
|
|||
#define PIPE_BUFSIZE 1024
|
||||
#define PIPE_TIMEOUT 1000
|
||||
|
||||
/* Defined in include/reactos/services/services.h */
|
||||
// #define SCM_START_EVENT L"SvcctrlStartEvent_A3752DX"
|
||||
#define SCM_AUTOSTARTCOMPLETE_EVENT L"SC_AutoStartComplete"
|
||||
#define LSA_RPC_SERVER_ACTIVE L"LSA_RPC_SERVER_ACTIVE"
|
||||
|
||||
BOOL ScmInitialize = FALSE;
|
||||
BOOL ScmShutdown = FALSE;
|
||||
static HANDLE hScmShutdownEvent = NULL;
|
||||
|
||||
|
@ -77,35 +83,38 @@ ScmLogError(DWORD dwEventId,
|
|||
|
||||
|
||||
BOOL
|
||||
ScmCreateStartEvent(PHANDLE StartEvent)
|
||||
ScmCreateControlEvent(PHANDLE Event,
|
||||
LPCWSTR Name,
|
||||
DWORD dwDesiredAccess)
|
||||
{
|
||||
/*
|
||||
* This function creates a generic non-inheritable event
|
||||
* and return a handle to the caller. The caller must
|
||||
* close this handle afterwards.
|
||||
*/
|
||||
|
||||
HANDLE hEvent;
|
||||
|
||||
hEvent = CreateEventW(NULL,
|
||||
TRUE,
|
||||
FALSE,
|
||||
L"SvcctrlStartEvent_A3752DX");
|
||||
hEvent = CreateEventW(NULL, TRUE, FALSE, Name);
|
||||
if (hEvent == NULL)
|
||||
{
|
||||
if (GetLastError() == ERROR_ALREADY_EXISTS)
|
||||
{
|
||||
hEvent = OpenEventW(EVENT_ALL_ACCESS,
|
||||
FALSE,
|
||||
L"SvcctrlStartEvent_A3752DX");
|
||||
if (hEvent == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
hEvent = OpenEventW(dwDesiredAccess, FALSE, Name);
|
||||
}
|
||||
}
|
||||
|
||||
*StartEvent = hEvent;
|
||||
|
||||
return TRUE;
|
||||
if (hEvent)
|
||||
{
|
||||
DPRINT("SERVICES: Created event %S with handle %x\n", Name, hEvent);
|
||||
*Event = hEvent;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("SERVICES: Failed to create event %S (Error %lu)\n", Name, GetLastError());
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -113,35 +122,21 @@ VOID
|
|||
ScmWaitForLsa(VOID)
|
||||
{
|
||||
HANDLE hEvent;
|
||||
DWORD dwError;
|
||||
|
||||
hEvent = CreateEventW(NULL,
|
||||
TRUE,
|
||||
FALSE,
|
||||
L"LSA_RPC_SERVER_ACTIVE");
|
||||
if (hEvent == NULL)
|
||||
if (!ScmCreateControlEvent(&hEvent,
|
||||
LSA_RPC_SERVER_ACTIVE,
|
||||
SYNCHRONIZE))
|
||||
{
|
||||
dwError = GetLastError();
|
||||
DPRINT1("Failed to create the notication event (Error %lu)\n", dwError);
|
||||
|
||||
if (dwError == ERROR_ALREADY_EXISTS)
|
||||
{
|
||||
hEvent = OpenEventW(SYNCHRONIZE,
|
||||
FALSE,
|
||||
L"LSA_RPC_SERVER_ACTIVE");
|
||||
if (hEvent == NULL)
|
||||
{
|
||||
DPRINT1("Could not open the notification event (Error %lu)\n", GetLastError());
|
||||
return;
|
||||
}
|
||||
}
|
||||
DPRINT1("Failed to create the notification event (Error %lu)\n", GetLastError());
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT("Wait for the LSA server!\n");
|
||||
WaitForSingleObject(hEvent, INFINITE);
|
||||
DPRINT("LSA server running!\n");
|
||||
|
||||
DPRINT("Wait for the LSA server!\n");
|
||||
WaitForSingleObject(hEvent, INFINITE);
|
||||
DPRINT("LSA server running!\n");
|
||||
|
||||
CloseHandle(hEvent);
|
||||
CloseHandle(hEvent);
|
||||
}
|
||||
|
||||
DPRINT("ScmWaitForLsa() done\n");
|
||||
}
|
||||
|
@ -351,23 +346,38 @@ wWinMain(HINSTANCE hInstance,
|
|||
int nShowCmd)
|
||||
{
|
||||
HANDLE hScmStartEvent = NULL;
|
||||
HANDLE hScmAutoStartCompleteEvent = NULL;
|
||||
SC_RPC_LOCK Lock = NULL;
|
||||
BOOL bCanDeleteNamedPipeCriticalSection = FALSE;
|
||||
DWORD dwError;
|
||||
|
||||
DPRINT("SERVICES: Service Control Manager\n");
|
||||
|
||||
/* Create start event */
|
||||
if (!ScmCreateStartEvent(&hScmStartEvent))
|
||||
/* We are initializing ourselves */
|
||||
ScmInitialize = TRUE;
|
||||
|
||||
/* Create the start event */
|
||||
if (!ScmCreateControlEvent(&hScmStartEvent,
|
||||
SCM_START_EVENT,
|
||||
EVENT_ALL_ACCESS))
|
||||
{
|
||||
DPRINT1("SERVICES: Failed to create start event\n");
|
||||
DPRINT1("SERVICES: Failed to create the start event\n");
|
||||
goto done;
|
||||
}
|
||||
DPRINT("SERVICES: Created start event with handle %p.\n", hScmStartEvent);
|
||||
|
||||
DPRINT("SERVICES: created start event with handle %p.\n", hScmStartEvent);
|
||||
/* Create the auto-start complete event */
|
||||
if (!ScmCreateControlEvent(&hScmAutoStartCompleteEvent,
|
||||
SCM_AUTOSTARTCOMPLETE_EVENT,
|
||||
EVENT_ALL_ACCESS))
|
||||
{
|
||||
DPRINT1("SERVICES: Failed to create the auto-start complete event\n");
|
||||
goto done;
|
||||
}
|
||||
DPRINT("SERVICES: created auto-start complete event with handle %p.\n", hScmAutoStartCompleteEvent);
|
||||
|
||||
/* Create the shutdown event */
|
||||
hScmShutdownEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
|
||||
hScmShutdownEvent = CreateEventW(NULL, TRUE, FALSE, NULL);
|
||||
if (hScmShutdownEvent == NULL)
|
||||
{
|
||||
DPRINT1("SERVICES: Failed to create shutdown event\n");
|
||||
|
@ -385,7 +395,7 @@ wWinMain(HINSTANCE hInstance,
|
|||
/* Read the control set values */
|
||||
if (!ScmGetControlSetValues())
|
||||
{
|
||||
DPRINT1("SERVICES: failed to read the control set values\n");
|
||||
DPRINT1("SERVICES: Failed to read the control set values\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -393,50 +403,59 @@ wWinMain(HINSTANCE hInstance,
|
|||
dwError = ScmCreateServiceDatabase();
|
||||
if (dwError != ERROR_SUCCESS)
|
||||
{
|
||||
DPRINT1("SERVICES: failed to create SCM database (Error %lu)\n", dwError);
|
||||
DPRINT1("SERVICES: Failed to create SCM database (Error %lu)\n", dwError);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Wait for the LSA server */
|
||||
ScmWaitForLsa();
|
||||
|
||||
/* Update the services database */
|
||||
ScmGetBootAndSystemDriverState();
|
||||
|
||||
/* Register the Service Control Manager process with CSRSS */
|
||||
/* Register the Service Control Manager process with the ReactOS Subsystem */
|
||||
if (!RegisterServicesProcess(GetCurrentProcessId()))
|
||||
{
|
||||
DPRINT1("SERVICES: Could not register SCM process\n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Acquire the service start lock until autostart services have been started */
|
||||
/*
|
||||
* Acquire the user service start lock until
|
||||
* auto-start services have been started.
|
||||
*/
|
||||
dwError = ScmAcquireServiceStartLock(TRUE, &Lock);
|
||||
if (dwError != ERROR_SUCCESS)
|
||||
{
|
||||
DPRINT1("SERVICES: failed to acquire the service start lock (Error %lu)\n", dwError);
|
||||
DPRINT1("SERVICES: Failed to acquire the service start lock (Error %lu)\n", dwError);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Start the RPC server */
|
||||
ScmStartRpcServer();
|
||||
|
||||
DPRINT("SERVICES: Initialized.\n");
|
||||
|
||||
/* Signal start event */
|
||||
SetEvent(hScmStartEvent);
|
||||
|
||||
DPRINT("SERVICES: Initialized.\n");
|
||||
|
||||
/* Register event handler (used for system shutdown) */
|
||||
SetConsoleCtrlHandler(ShutdownHandlerRoutine, TRUE);
|
||||
|
||||
/* Wait for the LSA server */
|
||||
ScmWaitForLsa();
|
||||
|
||||
/* Start auto-start services */
|
||||
ScmAutoStartServices();
|
||||
|
||||
/* Signal auto-start complete event */
|
||||
SetEvent(hScmAutoStartCompleteEvent);
|
||||
|
||||
/* FIXME: more to do ? */
|
||||
|
||||
/* Release the service start lock */
|
||||
ScmReleaseServiceStartLock(&Lock);
|
||||
|
||||
/* Initialization finished */
|
||||
ScmInitialize = FALSE;
|
||||
|
||||
DPRINT("SERVICES: Running.\n");
|
||||
|
||||
/* Wait until the shutdown event gets signaled */
|
||||
|
@ -451,6 +470,10 @@ done:
|
|||
if (hScmShutdownEvent != NULL)
|
||||
CloseHandle(hScmShutdownEvent);
|
||||
|
||||
/* Close the auto-start complete event */
|
||||
if (hScmAutoStartCompleteEvent != NULL)
|
||||
CloseHandle(hScmAutoStartCompleteEvent);
|
||||
|
||||
/* Close the start event */
|
||||
if (hScmStartEvent != NULL)
|
||||
CloseHandle(hScmStartEvent);
|
||||
|
@ -458,7 +481,6 @@ done:
|
|||
DPRINT("SERVICES: Finished.\n");
|
||||
|
||||
ExitThread(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -86,6 +86,7 @@ typedef struct _START_LOCK
|
|||
extern LIST_ENTRY ServiceListHead;
|
||||
extern LIST_ENTRY GroupListHead;
|
||||
extern LIST_ENTRY ImageListHead;
|
||||
extern BOOL ScmInitialize;
|
||||
extern BOOL ScmShutdown;
|
||||
|
||||
|
||||
|
|
|
@ -3,10 +3,10 @@ add_subdirectory(packages)
|
|||
|
||||
#common hives
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/txtsetup.sif DESTINATION reactos NO_CAB FOR bootcd regtest)
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivecls.inf DESTINATION reactos NO_CAB NAME_ON_CD hivecls.inf FOR bootcd regtest)
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivedef.inf DESTINATION reactos NO_CAB NAME_ON_CD hivedef.inf FOR bootcd regtest)
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesft.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesft.inf FOR bootcd regtest)
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesys.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesys.inf FOR bootcd regtest)
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivecls.inf DESTINATION reactos NO_CAB FOR bootcd regtest)
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivedef.inf DESTINATION reactos NO_CAB FOR bootcd regtest)
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesft.inf DESTINATION reactos NO_CAB FOR bootcd regtest)
|
||||
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesys.inf DESTINATION reactos NO_CAB FOR bootcd regtest)
|
||||
|
||||
# livecd hives
|
||||
list(APPEND CD_HIVES
|
||||
|
|
|
@ -92,6 +92,8 @@ HKCU,"Control Panel\Desktop\WindowMetrics","MenuWidth",2,"18"
|
|||
HKCU,"Control Panel\Desktop\WindowMetrics","MenuHeight",2,"18"
|
||||
HKCU,"Control Panel\Desktop\WindowMetrics","BorderWidth",2,"1"
|
||||
HKCU,"Control Panel\Desktop\WindowMetrics","Shell Icon Size",2,"32"
|
||||
HKCU,"Control Panel\Desktop\WindowMetrics","IconSpacing",2,"75"
|
||||
HKCU,"Control Panel\Desktop\WindowMetrics","IconVerticalspacing",2,"75"
|
||||
HKCU, "Control Panel\Desktop\WindowMetrics","CaptionFont",0x00000001,f5,ff,ff,ff,00,00,00,\
|
||||
00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,01,00,00,00,00,54,00,61,00,68,00,6f,00,6d,\
|
||||
00,61,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||
|
|
|
@ -135,6 +135,7 @@ elseif(ARCH STREQUAL "amd64")
|
|||
arch/i386/hwapm.c
|
||||
arch/i386/hwdisk.c
|
||||
arch/i386/hwpci.c
|
||||
arch/i386/i386bug.c
|
||||
arch/i386/i386rtl.c
|
||||
arch/i386/i386disk.c
|
||||
arch/i386/i386vid.c
|
||||
|
|
|
@ -52,6 +52,15 @@ stop:
|
|||
nop
|
||||
|
||||
|
||||
PUBLIC Reboot
|
||||
Reboot:
|
||||
/* Set the function ID */
|
||||
mov bx, FNID_Reboot
|
||||
|
||||
/* Switch to real mode (We don't return) */
|
||||
jmp SwitchToReal
|
||||
|
||||
|
||||
/* Internal function for realmode calls
|
||||
* bx must be set to the ID of the realmode function to call. */
|
||||
PUBLIC CallRealMode
|
||||
|
|
|
@ -269,6 +269,7 @@ Amd64SetupGdt(PVOID GdtBase, ULONG64 TssBase)
|
|||
{
|
||||
PKGDTENTRY64 Entry;
|
||||
KDESCRIPTOR GdtDesc;
|
||||
TRACE("Amd64SetupGdt(GdtBase = %p, TssBase = %p)\n", GdtBase, TssBase);
|
||||
|
||||
/* Setup KGDT64_NULL */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT64_NULL);
|
||||
|
@ -308,20 +309,22 @@ Amd64SetupGdt(PVOID GdtBase, ULONG64 TssBase)
|
|||
|
||||
/* Set the new Gdt */
|
||||
__lgdt(&GdtDesc.Limit);
|
||||
TRACE("Gdtr.Base = %p, num = %ld\n", GdtDesc.Base, NUM_GDT);
|
||||
|
||||
TRACE("Leave Amd64SetupGdt()\n");
|
||||
}
|
||||
|
||||
VOID
|
||||
Amd64SetupIdt(PVOID IdtBase)
|
||||
{
|
||||
KDESCRIPTOR IdtDesc, OldIdt;
|
||||
ULONG Size;
|
||||
TRACE("Amd64SetupIdt(IdtBase = %p)\n", IdtBase);
|
||||
|
||||
/* Get old IDT */
|
||||
__sidt(&OldIdt);
|
||||
__sidt(&OldIdt.Limit);
|
||||
|
||||
/* Copy the old IDT */
|
||||
RtlCopyMemory(IdtBase, (PVOID)OldIdt.Base, OldIdt.Limit + 1);
|
||||
Size = min(OldIdt.Limit + 1, NUM_IDT * sizeof(KIDTENTRY));
|
||||
//RtlCopyMemory(IdtBase, (PVOID)OldIdt.Base, Size);
|
||||
|
||||
/* Setup the new IDT descriptor */
|
||||
IdtDesc.Base = IdtBase;
|
||||
|
@ -329,8 +332,7 @@ Amd64SetupIdt(PVOID IdtBase)
|
|||
|
||||
/* Set the new IDT */
|
||||
__lidt(&IdtDesc.Limit);
|
||||
TRACE("Idtr.Base = %p\n", IdtDesc.Base);
|
||||
|
||||
TRACE("Leave Amd64SetupIdt()\n");
|
||||
}
|
||||
|
||||
VOID
|
||||
|
@ -354,7 +356,7 @@ WinLdrSetProcessorContext(void)
|
|||
Amd64SetupGdt(GdtIdt, KSEG0_BASE | (TssBasePage << MM_PAGE_SHIFT));
|
||||
|
||||
/* Copy old Idt and set idtr */
|
||||
Amd64SetupIdt((PVOID)((ULONG64)GdtIdt + 2048)); // HACK!
|
||||
Amd64SetupIdt((PVOID)((ULONG64)GdtIdt + NUM_GDT * sizeof(KGDTENTRY)));
|
||||
|
||||
/* LDT is unused */
|
||||
// __lldt(0);
|
||||
|
@ -390,7 +392,7 @@ void WinLdrSetupMachineDependent(PLOADER_PARAMETER_BLOCK LoaderBlock)
|
|||
TssBasePage = Tss >> MM_PAGE_SHIFT;
|
||||
|
||||
/* Allocate space for new GDT + IDT */
|
||||
BlockSize = NUM_GDT*sizeof(KGDTENTRY) + NUM_IDT*sizeof(KIDTENTRY);//FIXME: Use GDT/IDT limits here?
|
||||
BlockSize = NUM_GDT * sizeof(KGDTENTRY) + NUM_IDT * sizeof(KIDTENTRY);
|
||||
NumPages = (BlockSize + MM_PAGE_SIZE - 1) >> MM_PAGE_SHIFT;
|
||||
GdtIdt = (PKGDTENTRY)MmAllocateMemoryWithType(NumPages * MM_PAGE_SIZE, LoaderMemoryData);
|
||||
if (GdtIdt == NULL)
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
#if DBG && !defined(_M_ARM)
|
||||
|
||||
//#define DEBUG_ALL
|
||||
//#define DEBUG_WARN
|
||||
//#define DEBUG_ERR
|
||||
//#define DEBUG_INIFILE
|
||||
//#define DEBUG_REACTOS
|
||||
//#define DEBUG_CUSTOM
|
||||
|
@ -49,7 +51,12 @@ ULONG DebugPort = RS232;
|
|||
//ULONG DebugPort = SCREEN;
|
||||
//ULONG DebugPort = BOCHS;
|
||||
//ULONG DebugPort = SCREEN|BOCHS;
|
||||
#ifdef _WINKD_
|
||||
/* COM1 is the WinDbg port */
|
||||
ULONG ComPort = COM2;
|
||||
#else
|
||||
ULONG ComPort = COM1;
|
||||
#endif
|
||||
//ULONG BaudRate = 19200;
|
||||
ULONG BaudRate = 115200;
|
||||
|
||||
|
@ -59,6 +66,10 @@ VOID DebugInit(VOID)
|
|||
{
|
||||
#if defined (DEBUG_ALL)
|
||||
memset(DbgChannels, MAX_LEVEL, DBG_CHANNELS_COUNT);
|
||||
#elif defined (DEBUG_WARN)
|
||||
memset(DbgChannels, WARN_LEVEL|FIXME_LEVEL|ERR_LEVEL, DBG_CHANNELS_COUNT);
|
||||
#elif defined (DEBUG_ERR)
|
||||
memset(DbgChannels, ERR_LEVEL, DBG_CHANNELS_COUNT);
|
||||
#else
|
||||
memset(DbgChannels, 0, DBG_CHANNELS_COUNT);
|
||||
#endif
|
||||
|
|
|
@ -23,8 +23,13 @@ extern char __ImageBase;
|
|||
#ifdef __GNUC__
|
||||
#define FREELDR_SECTION_COUNT 3
|
||||
#else
|
||||
#ifdef _M_AMD64
|
||||
/* .text and .pdata */
|
||||
#define FREELDR_SECTION_COUNT 2
|
||||
#else
|
||||
#define FREELDR_SECTION_COUNT 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef struct _FREELDR_MEMORY_DESCRIPTOR
|
||||
{
|
||||
|
|
|
@ -174,7 +174,7 @@ MmCheckFreeldrImageFile()
|
|||
NtHeaders = RtlImageNtHeader(&__ImageBase);
|
||||
if (!NtHeaders)
|
||||
{
|
||||
ERR("Coult not get NtHeaders!\n");
|
||||
ERR("Could not get NtHeaders!\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -184,8 +184,14 @@ MmCheckFreeldrImageFile()
|
|||
(FileHeader->NumberOfSections != FREELDR_SECTION_COUNT) ||
|
||||
(FileHeader->PointerToSymbolTable != 0) ||
|
||||
(FileHeader->NumberOfSymbols != 0) ||
|
||||
(FileHeader->SizeOfOptionalHeader != 0xE0))
|
||||
(FileHeader->SizeOfOptionalHeader != sizeof(IMAGE_OPTIONAL_HEADER)))
|
||||
{
|
||||
ERR("FreeLdr FileHeader is invalid.\n");
|
||||
BugCheckInfo[0] = FileHeader->Machine;
|
||||
BugCheckInfo[1] = FileHeader->NumberOfSections;
|
||||
BugCheckInfo[2] = FileHeader->PointerToSymbolTable;
|
||||
BugCheckInfo[3] = FileHeader->NumberOfSymbols;
|
||||
BugCheckInfo[4] = FileHeader->SizeOfOptionalHeader;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -197,6 +203,12 @@ MmCheckFreeldrImageFile()
|
|||
(OptionalHeader->SizeOfImage > MAX_FREELDR_PE_SIZE) ||
|
||||
(OptionalHeader->SectionAlignment != OptionalHeader->FileAlignment))
|
||||
{
|
||||
ERR("FreeLdr OptionalHeader is invalid.\n");
|
||||
BugCheckInfo[0] = 0x80000000 | (OptionalHeader->Subsystem << 16) | OptionalHeader->Magic;
|
||||
BugCheckInfo[1] = OptionalHeader->ImageBase;
|
||||
BugCheckInfo[2] = OptionalHeader->SizeOfImage;
|
||||
BugCheckInfo[3] = OptionalHeader->SectionAlignment;
|
||||
BugCheckInfo[4] = OptionalHeader->FileAlignment;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -422,3 +422,13 @@ function(get_defines OUTPUT_VAR)
|
|||
endforeach()
|
||||
set(${OUTPUT_VAR} ${__tmp_var} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7))
|
||||
function(add_object_library _target)
|
||||
add_library(${_target} OBJECT ${ARGN})
|
||||
endfunction()
|
||||
else()
|
||||
function(add_object_library _target)
|
||||
add_library(${_target} ${ARGN})
|
||||
endfunction()
|
||||
endif()
|
||||
|
|
|
@ -46,10 +46,12 @@ if(MSVC)
|
|||
endif()
|
||||
|
||||
else()
|
||||
set(KDBG TRUE CACHE BOOL
|
||||
"Whether to compile in the integrated kernel debugger.")
|
||||
set(_WINKD_ FALSE CACHE BOOL
|
||||
"Whether to compile with the KD protocol.")
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
set(KDBG FALSE CACHE BOOL "Whether to compile in the integrated kernel debugger.")
|
||||
else()
|
||||
set(KDBG TRUE CACHE BOOL "Whether to compile in the integrated kernel debugger.")
|
||||
endif()
|
||||
set(_WINKD_ FALSE CACHE BOOL "Whether to compile with the KD protocol.")
|
||||
endif()
|
||||
|
||||
set(_ELF_ FALSE CACHE BOOL
|
||||
|
|
|
@ -91,6 +91,12 @@ elseif(ARCH STREQUAL "amd64")
|
|||
add_compile_flags("-mpreferred-stack-boundary=4")
|
||||
endif()
|
||||
|
||||
# PSEH
|
||||
if(GCC_VERSION VERSION_GREATER 4.7)
|
||||
set(USE_PSEH3 1)
|
||||
add_definitions(-D_USE_PSEH3=1)
|
||||
endif()
|
||||
|
||||
# Other
|
||||
if(ARCH STREQUAL "amd64")
|
||||
add_definitions(-U_X86_ -UWIN32)
|
||||
|
|
|
@ -7,21 +7,21 @@ CAPTION "キーボード"
|
|||
FONT 9, "MS UI Gothic", 0, 0, 0x0
|
||||
BEGIN
|
||||
GROUPBOX "固定キー機能",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(6)+PROPSHEETPADDING(1)
|
||||
LTEXT "固定キー機能 を使うと、キーを同時に押さなくても、Shift、Ctrl、Alt キーの機能 が使えます。",-1,PROPSHEETPADDING(2),LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
AUTOCHECKBOX "固定キー機能 を使う(&U)",IDC_STICKY_BOX,PROPSHEETPADDING(2),LABELLINE(5)+2,PROPSHEETWIDTH-PROPSHEETPADDING(20),14
|
||||
LTEXT "固定キー機能を使うと、キーを同時に押さなくても、Shift、Ctrl、Alt キーの機能が使えます。",-1,PROPSHEETPADDING(2),LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
AUTOCHECKBOX "固定キー機能を使う(&U)",IDC_STICKY_BOX,PROPSHEETPADDING(2),LABELLINE(5)+2,PROPSHEETWIDTH-PROPSHEETPADDING(20),14
|
||||
PUSHBUTTON "設定(&S)",IDC_STICKY_BUTTON,PROPSHEETWIDTH-PROPSHEETPADDING(17),LABELLINE(5)+2,PROPSHEETPADDING(15),14
|
||||
|
||||
GROUPBOX "フィルタ キー機能",-1,PROPSHEETPADDING(1),LABELLINE(8)+5,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(7)+2
|
||||
LTEXT "フィルタ キー機能 を使うと、速いキー入力や繰り返されたキー入力を無視したり、繰り返し入力の間隔を長くしたりすることができます。",-1,PROPSHEETPADDING(2),LABELLINE(10)-3,PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
AUTOCHECKBOX "フィルタ キー機能 を使う(&F)",IDC_FILTER_BOX,PROPSHEETPADDING(2),LABELLINE(13)+2,PROPSHEETWIDTH-PROPSHEETPADDING(20),14
|
||||
LTEXT "フィルタ キー機能を使うと、速いキー入力や繰り返されたキー入力を無視したり、繰り返し入力の間隔を長くしたりすることができます。",-1,PROPSHEETPADDING(2),LABELLINE(10)-3,PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
AUTOCHECKBOX "フィルタ キー機能を使う(&F)",IDC_FILTER_BOX,PROPSHEETPADDING(2),LABELLINE(13)+2,PROPSHEETWIDTH-PROPSHEETPADDING(20),14
|
||||
PUSHBUTTON "設定(&E)",IDC_FILTER_BUTTON,PROPSHEETWIDTH-PROPSHEETPADDING(17),LABELLINE(13)+2,PROPSHEETPADDING(15),14
|
||||
|
||||
GROUPBOX "切り替えキー機能",-1,PROPSHEETPADDING(1),LABELLINE(16)+3,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(6)+PROPSHEETPADDING(1)
|
||||
LTEXT "切り替えキー機能 を使うと、CapsLock、NumLock、ScrollLock キーを押したときに音を鳴らします。",-1,PROPSHEETPADDING(2),LABELLINE(18)-3,PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(2)
|
||||
AUTOCHECKBOX "切り替えキー機能 を使う(&T)",IDC_TOGGLE_BOX,PROPSHEETPADDING(2),LABELLINE(20)+2,PROPSHEETWIDTH-PROPSHEETPADDING(20),14
|
||||
LTEXT "切り替えキー機能を使うと、CapsLock、NumLock、ScrollLock キーを押したときに音を鳴らします。",-1,PROPSHEETPADDING(2),LABELLINE(18)-3,PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(2)
|
||||
AUTOCHECKBOX "切り替えキー機能を使う(&T)",IDC_TOGGLE_BOX,PROPSHEETPADDING(2),LABELLINE(20)+2,PROPSHEETWIDTH-PROPSHEETPADDING(20),14
|
||||
PUSHBUTTON "設定(&N)",IDC_TOGGLE_BUTTON,PROPSHEETWIDTH-PROPSHEETPADDING(17),LABELLINE(20)+2,PROPSHEETPADDING(15),14
|
||||
|
||||
AUTOCHECKBOX "プログラムで追加のキーボード ヘルプを表 示する(&W)",IDC_KEYBOARD_EXTRA,PROPSHEETPADDING(1),LABELLINE(23)+3,PROPSHEETWIDTH-PROPSHEETPADDING(2),14
|
||||
AUTOCHECKBOX "プログラムで追加のキーボード ヘルプを表示する(&W)",IDC_KEYBOARD_EXTRA,PROPSHEETPADDING(1),LABELLINE(23)+3,PROPSHEETWIDTH-PROPSHEETPADDING(2),14
|
||||
END
|
||||
|
||||
|
||||
|
@ -37,7 +37,7 @@ BEGIN
|
|||
COMBOBOX IDC_SENTRY_COMBO, PROPSHEETPADDING(2), LABELLINE(9), PROPSHEETWIDTH-PROPSHEETPADDING(4), LABELLINE(6), CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP
|
||||
|
||||
GROUPBOX "サウンド解説",-1,PROPSHEETPADDING(1),LABELLINE(12)+5,PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(7)+2
|
||||
LTEXT "プログラムが音を鳴らすとき、鳴らす音について解説を表 示します。",-1,PROPSHEETPADDING(2),LABELLINE(14)-3,PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
LTEXT "プログラムが音を鳴らすとき、鳴らす音について解説を表示します。",-1,PROPSHEETPADDING(2),LABELLINE(14)-3,PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
AUTOCHECKBOX "サウンド解説(&H)",IDC_SSHOW_BOX,PROPSHEETPADDING(2),LABELLINE(16)+2,PROPSHEETWIDTH-PROPSHEETPADDING(4),14
|
||||
END
|
||||
|
||||
|
@ -48,7 +48,7 @@ CAPTION "画面"
|
|||
FONT 9, "MS UI Gothic", 0, 0, 0x0
|
||||
BEGIN
|
||||
GROUPBOX "ハイコントラスト",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(6)+PROPSHEETPADDING(1)
|
||||
LTEXT "この機能 を使うと、画面表 示に読みやすい配色とフォントを使います。",-1,PROPSHEETPADDING(2),LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
LTEXT "この機能を使うと、画面表示に読みやすい配色とフォントを使います。",-1,PROPSHEETPADDING(2),LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
AUTOCHECKBOX "ハイコントラストを使う(&U)",IDC_CONTRAST_BOX,PROPSHEETPADDING(2),LABELLINE(5)+2,PROPSHEETWIDTH-PROPSHEETPADDING(20),14
|
||||
PUSHBUTTON "設定(&S)",IDC_CONTRAST_BUTTON,PROPSHEETWIDTH-PROPSHEETPADDING(17),LABELLINE(5)+2,PROPSHEETPADDING(15),14
|
||||
|
||||
|
@ -72,8 +72,8 @@ CAPTION "マウス"
|
|||
FONT 9, "MS UI Gothic", 0, 0, 0x0
|
||||
BEGIN
|
||||
GROUPBOX "マウス キー機能",-1,PROPSHEETPADDING(1),LABELLINE(1),PROPSHEETWIDTH-PROPSHEETPADDING(2),LABELLINE(6)+PROPSHEETPADDING(1)
|
||||
LTEXT "マウス キー機能 を使うと、テンキーを使ってマウス ポインタを操作できます。",-1,PROPSHEETPADDING(2),LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
AUTOCHECKBOX "マウス キー機能 (&M)",IDC_MOUSE_BOX,PROPSHEETPADDING(2),LABELLINE(5)+2,PROPSHEETWIDTH-PROPSHEETPADDING(20),14
|
||||
LTEXT "マウス キー機能を使うと、テンキーを使ってマウス ポインタを操作できます。",-1,PROPSHEETPADDING(2),LABELLINE(2),PROPSHEETWIDTH-PROPSHEETPADDING(4),LABELLINE(3)
|
||||
AUTOCHECKBOX "マウス キー機能(&M)",IDC_MOUSE_BOX,PROPSHEETPADDING(2),LABELLINE(5)+2,PROPSHEETWIDTH-PROPSHEETPADDING(20),14
|
||||
PUSHBUTTON "設定(&S)",IDC_MOUSE_BUTTON,PROPSHEETWIDTH-PROPSHEETPADDING(17),LABELLINE(5)+2,PROPSHEETPADDING(15),14
|
||||
END
|
||||
|
||||
|
@ -292,7 +292,7 @@ END
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CPLSYSTEMNAME "ユーザー補助"
|
||||
IDS_CPLSYSTEMDESCRIPTION "視覚、聴覚、四肢の状態に合わせて、ユーザーを補助する機能 を調整します。"
|
||||
IDS_CPLSYSTEMDESCRIPTION "視覚、聴覚、四肢の状態に合わせて、ユーザーを補助する機能を調整します。"
|
||||
|
||||
IDS_SENTRY_NONE "[None]"
|
||||
IDS_SENTRY_TITLE "Flash the titlebar"
|
||||
|
|
|
@ -18,7 +18,7 @@ BEGIN
|
|||
LTEXT "", IDC_MACHINELINE4, 130, 171, 118, 9
|
||||
LTEXT "", IDC_MACHINELINE5, 130, 180, 118, 9
|
||||
CONTROL "<A HREF=""http://www.reactos.org/"">ReactOS ホームページ</A>へ行く", IDC_ROSHOMEPAGE_LINK, "SysLink", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 20, 200, 140, 10
|
||||
PUSHBUTTON "ライセンスを表 示(&L)...", IDC_LICENCE, 170, 199, 78, 13
|
||||
PUSHBUTTON "ライセンスを表示(&L)...", IDC_LICENCE, 170, 199, 78, 13
|
||||
END
|
||||
|
||||
|
||||
|
@ -29,7 +29,7 @@ FONT 9, "MS UI Gothic", 0, 0, 0x0
|
|||
BEGIN
|
||||
GROUPBOX "デバイス マネージャ", IDC_STATIC, 6, 7, 244, 61
|
||||
ICON IDI_DEVMGR, IDC_STATIC, 12, 18, 23, 21, SS_ICON
|
||||
LTEXT "デバイスマネージャはコンピュータに装着されているすべてのハードウェアを表 示 します。各デバイスのプロパティを変更するにはデバイスマネージャを使用 してください。", IDC_STATIC, 42, 18, 204, 24
|
||||
LTEXT "デバイスマネージャはコンピュータに装着されているすべてのハードウェアを表示 します。各デバイスのプロパティを変更するにはデバイスマネージャを使用 してください。", IDC_STATIC, 42, 18, 204, 24
|
||||
PUSHBUTTON "デバイス マネージャ(&D)...", IDC_HARDWARE_DEVICE_MANAGER, 154, 48, 90, 15
|
||||
|
||||
GROUPBOX "ハードウェア ウィザード", IDC_STATIC, 6, 79, 244, 61
|
||||
|
@ -39,7 +39,7 @@ BEGIN
|
|||
|
||||
GROUPBOX "ハードウェア プロファイル", IDC_STATIC, 6, 149, 244, 61
|
||||
ICON IDI_HARDPROF, IDC_STATIC, 12, 160, 23, 21, SS_ICON
|
||||
LTEXT "ハードウェアプロファイルは別のハードウェアの構 成を設定し、格納する方法を 提供します。", IDC_STATIC, 42, 160, 204, 24
|
||||
LTEXT "ハードウェアプロファイルは別のハードウェアの構成を設定し、格納する方法を 提供します。", IDC_STATIC, 42, 160, 204, 24
|
||||
PUSHBUTTON "ハードウェア プロファイル(&W)...", IDC_HARDWARE_PROFILE, 154, 190, 90, 15
|
||||
END
|
||||
|
||||
|
@ -86,8 +86,8 @@ CAPTION "ハードウェア プロファイル"
|
|||
FONT 9, "MS UI Gothic"
|
||||
BEGIN
|
||||
ICON IDI_HARDPROF, IDC_STATIC, 8, 11, 18, 20, SS_ICON
|
||||
LTEXT "異なるハードウェア構 成に合わせたハードウェア プロファイルをセットアップできます。 起動時に使用するプロファイルを選択できます。", IDC_STATIC, 46, 11, 188, 25
|
||||
LTEXT "利用可能 なハードウェア プロファイル:", IDC_STATIC, 8, 41, 120, 8
|
||||
LTEXT "異なるハードウェア構成に合わせたハードウェア プロファイルをセットアップできます。 起動時に使用するプロファイルを選択できます。", IDC_STATIC, 46, 11, 188, 25
|
||||
LTEXT "利用可能なハードウェア プロファイル:", IDC_STATIC, 8, 41, 120, 8
|
||||
LISTBOX IDC_HRDPROFLSTBOX, 8, 52, 215, 54, LBS_NOTIFY
|
||||
PUSHBUTTON "", IDC_HRDPROFUP, 232, 59, 15, 14, BS_ICON | WS_DISABLED
|
||||
PUSHBUTTON "", IDC_HRDPROFDWN, 232, 79, 15, 14, BS_ICON | WS_DISABLED
|
||||
|
@ -169,11 +169,11 @@ BEGIN
|
|||
GROUPBOX "システムの起動", IDC_STATIC, 7, 12, 238, 95
|
||||
LTEXT "既定のオペレーティング システム(&S):", IDC_STATIC, 14, 26, 100, 8
|
||||
COMBOBOX IDC_STRECOSCOMBO, 14, 37, 224, 46, CBS_DROPDOWNLIST
|
||||
AUTOCHECKBOX "オペレーティング システムの一覧を表 示する時間(&T):", IDC_STRECLIST, 14, 56, 160, 8
|
||||
AUTOCHECKBOX "オペレーティング システムの一覧を表示する時間(&T):", IDC_STRECLIST, 14, 56, 160, 8
|
||||
EDITTEXT IDC_STRRECLISTEDIT, 185, 54, 30, 12, ES_NUMBER
|
||||
CONTROL "", IDC_STRRECLISTUPDWN, "msctls_updown32", UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | WS_CHILD | WS_VISIBLE, 0, 0, 8, 13
|
||||
LTEXT "秒", IDC_STATIC, 223, 56, 18, 8
|
||||
AUTOCHECKBOX "必要なときに修復オプションを表 示する時間(&D):", IDC_STRRECREC, 14, 70, 170, 8
|
||||
AUTOCHECKBOX "必要なときに修復オプションを表示する時間(&D):", IDC_STRRECREC, 14, 70, 170, 8
|
||||
EDITTEXT IDC_STRRECRECEDIT, 185, 68, 30, 12, ES_NUMBER
|
||||
CONTROL "", IDC_STRRECRECUPDWN, "msctls_updown32", UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS | WS_CHILD | WS_VISIBLE, 0, 0, 8, 13
|
||||
LTEXT "秒", IDC_STATIC, 223, 70, 18, 8
|
||||
|
|
|
@ -3,5 +3,5 @@ LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_CPLSYSTEMNAME "電話とモデムのオプション"
|
||||
IDS_CPLSYSTEMDESCRIPTION "電話のダイヤル情報とモデムのプロパティを構 成します。"
|
||||
IDS_CPLSYSTEMDESCRIPTION "電話のダイヤル情報とモデムのプロパティを構成します。"
|
||||
END
|
||||
|
|
|
@ -15,7 +15,7 @@ BEGIN
|
|||
CONTROL "", IDC_MONTHCALENDAR, "MonthCalWnd",
|
||||
WS_CHILD | WS_VISIBLE | WS_TABSTOP,
|
||||
11, 37, 108, 80, WS_EX_CLIENTEDGE
|
||||
GROUPBOX "&Time", -1, 132, 2, 113, 125
|
||||
GROUPBOX "&Ora", -1, 132, 2, 113, 125
|
||||
CONTROL "", IDC_TIMEPICKER, "SysDateTimePick32",
|
||||
DTS_TIMEFORMAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
|
||||
144, 105, 90, 12
|
||||
|
@ -50,7 +50,7 @@ BEGIN
|
|||
PUSHBUTTON "Aggiorna ora", IDC_UPDATEBUTTON, 187, 22, 49, 14
|
||||
LTEXT "", IDC_SUCSYNC, 12, 54, 214, 23
|
||||
LTEXT "", IDC_NEXTSYNC, 12, 96, 137, 12
|
||||
LTEXT "La sincronizzazione può avvenire solo quando il computer è connesso a Internet.", -1, 12, 114, 225, 25
|
||||
LTEXT "La sincronizzazione può avvenire solo quando il computer è connesso a Internet.", -1, 12, 114, 225, 25
|
||||
END
|
||||
|
||||
|
||||
|
@ -61,7 +61,7 @@ BEGIN
|
|||
IDS_TIMEZONETEXT "Fuso orario corrente: %s"
|
||||
IDS_TIMEZONEINVALID "Non valido"
|
||||
IDS_TIMEZONEUNKNOWN "Sconosciuto"
|
||||
IDS_INETTIMESUCSYNC "L'ora è stata sincronizzata correttamente con %s %s alle %s"
|
||||
IDS_INETTIMESUCSYNC "L'ora è stata sincronizzata correttamente con %s %s alle %s"
|
||||
IDS_INETTIMENEXTSYNC "Prossima sincronizzazione: %s alle %s"
|
||||
IDS_INETTIMESYNCING "Sincronizzazione ora con %s"
|
||||
IDS_INETTIMEERROR "E' stato rilevato un errore mentre ReactOS si stava sincronizzando con %s"
|
||||
|
|
|
@ -31,9 +31,6 @@
|
|||
#ifdef LANGUAGE_ID_ID
|
||||
#include "lang/id-ID.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_IT_IT
|
||||
#include "lang/it-IT.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_JA_JP
|
||||
#include "lang/ja-JP.rc"
|
||||
#endif
|
||||
|
@ -58,9 +55,13 @@
|
|||
|
||||
// UTF-8
|
||||
#pragma code_page(65001)
|
||||
|
||||
#ifdef LANGUAGE_HE_IL
|
||||
#include "lang/he-IL.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_IT_IT
|
||||
#include "lang/it-IT.rc"
|
||||
#endif
|
||||
#ifdef LANGUAGE_PL_PL
|
||||
#include "lang/pl-PL.rc"
|
||||
#endif
|
||||
|
|
61
dll/directx/ddraw/CMakeLists.txt
Normal file
61
dll/directx/ddraw/CMakeLists.txt
Normal file
|
@ -0,0 +1,61 @@
|
|||
|
||||
spec2def(ddraw.dll ddraw.spec ADD_IMPORTLIB)
|
||||
|
||||
list(APPEND SOURCE
|
||||
cleanup.c
|
||||
main.c
|
||||
startup.c
|
||||
Clipper/clipper_main.c
|
||||
Clipper/clipper_stubs.c
|
||||
Color/color_stubs.c
|
||||
d3d/DirectD3D_main.c
|
||||
Ddraw/callbacks_dd_hel.c
|
||||
Ddraw/ddraw_displaymode.c
|
||||
Ddraw/ddraw_main.c
|
||||
Ddraw/ddraw_setcooperativelevel.c
|
||||
Ddraw/ddraw_stubs.c
|
||||
Ddraw/GetCaps.c
|
||||
Ddraw/GetDeviceIdentifier.c
|
||||
Gamma/gamma_stubs.c
|
||||
Kernel/kernel_stubs.c
|
||||
Palette/createpalette.c
|
||||
Palette/palette.c
|
||||
Surface/callbacks_surf_hel.c
|
||||
Surface/createsurface.c
|
||||
Surface/surface_main.c
|
||||
Surface/surface_stubs.c
|
||||
Videoport/videoport_stubs.c
|
||||
Vtable/DirectD3D_Vtable.c
|
||||
Vtable/DirectD3D2_Vtable.c
|
||||
Vtable/DirectD3D3_Vtable.c
|
||||
Vtable/DirectD3D7_Vtable.c
|
||||
Vtable/DirectDraw_Vtable.c
|
||||
Vtable/DirectDraw2_Vtable.c
|
||||
Vtable/DirectDraw4_Vtable.c
|
||||
Vtable/DirectDraw7_Vtable.c
|
||||
Vtable/DirectDrawSurface_Vtable.c
|
||||
Vtable/DirectDrawSurface2_Vtable.c
|
||||
Vtable/DirectDrawSurface3_Vtable.c
|
||||
Vtable/DirectDrawSurface4_Vtable.c
|
||||
Vtable/DirectDrawSurface7_Vtable.c
|
||||
)
|
||||
|
||||
add_library(ddraw SHARED ${SOURCE})
|
||||
|
||||
set_module_type(ddraw win32dll)
|
||||
|
||||
target_link_libraries(ddraw
|
||||
uuid
|
||||
dxguid
|
||||
${PSEH_LIB}
|
||||
)
|
||||
|
||||
add_importlibs(ddraw
|
||||
advapi32
|
||||
gdi32
|
||||
user32
|
||||
msvcrt
|
||||
kernel32
|
||||
ntdll)
|
||||
|
||||
add_cd_file(TARGET ddraw DESTINATION reactos/system32 FOR all)
|
|
@ -1676,7 +1676,7 @@ COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
|
|||
assert(m_hPin != INVALID_HANDLE_VALUE);
|
||||
|
||||
// get all supported sets
|
||||
if (m_Plugins.size() == 0)
|
||||
if (m_Plugins.empty())
|
||||
{
|
||||
if (GetSupportedSets(&pGuid, &NumGuids))
|
||||
{
|
||||
|
|
|
@ -442,7 +442,7 @@
|
|||
@ stdcall RtlAddVectoredExceptionHandler(long ptr)
|
||||
;@ stdcall RtlAddressInSectionTable
|
||||
@ stdcall RtlAdjustPrivilege(long long long ptr)
|
||||
@ stdcall RtlAllocateActivationContextStack(ptr) ; CHEKME
|
||||
@ stdcall RtlAllocateActivationContextStack(ptr) ; CHECKME
|
||||
@ stdcall RtlAllocateAndInitializeSid(ptr long long long long long long long long long ptr)
|
||||
@ stdcall RtlAllocateHandle(ptr ptr)
|
||||
@ stdcall RtlAllocateHeap(ptr long ptr)
|
||||
|
@ -635,7 +635,7 @@
|
|||
@ stdcall RtlFormatCurrentUserKeyPath(ptr)
|
||||
@ stdcall RtlFormatMessage(ptr long long long long ptr ptr long)
|
||||
;@ stdcall RtlFormatMessageEx
|
||||
;@ stdcall RtlFreeActivationContextStack
|
||||
@ stdcall RtlFreeActivationContextStack(ptr)
|
||||
@ stdcall RtlFreeAnsiString(long)
|
||||
@ stdcall RtlFreeHandle(ptr ptr)
|
||||
@ stdcall RtlFreeHeap(long long long)
|
||||
|
|
|
@ -508,7 +508,7 @@ LdrpInitializeThread(IN PCONTEXT Context)
|
|||
|
||||
/* Allocate an Activation Context Stack */
|
||||
DPRINT("ActivationContextStack %p\n", NtCurrentTeb()->ActivationContextStackPointer);
|
||||
Status = RtlAllocateActivationContextStack((PVOID*)&NtCurrentTeb()->ActivationContextStackPointer);
|
||||
Status = RtlAllocateActivationContextStack(&NtCurrentTeb()->ActivationContextStackPointer);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("Warning: Unable to allocate ActivationContextStack\n");
|
||||
|
@ -1709,7 +1709,7 @@ LdrpInitializeProcess(IN PCONTEXT Context,
|
|||
}
|
||||
|
||||
/* Allocate an Activation Context Stack */
|
||||
Status = RtlAllocateActivationContextStack((PVOID *)&Teb->ActivationContextStackPointer);
|
||||
Status = RtlAllocateActivationContextStack(&Teb->ActivationContextStackPointer);
|
||||
if (!NT_SUCCESS(Status)) return Status;
|
||||
|
||||
// FIXME: Loader private heap is missing
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
|
||||
spec2def(opengl32.dll opengl32.spec ADD_IMPORTLIB)
|
||||
|
||||
add_definitions(
|
||||
|
@ -16,19 +15,8 @@ list(APPEND SOURCE
|
|||
${CMAKE_CURRENT_BINARY_DIR}/opengl32.def)
|
||||
|
||||
add_library(opengl32 SHARED ${SOURCE})
|
||||
|
||||
target_link_libraries(opengl32 wine)
|
||||
set_module_type(opengl32 win32dll UNICODE)
|
||||
|
||||
add_importlibs(opengl32
|
||||
msvcrt
|
||||
gdi32
|
||||
user32
|
||||
advapi32
|
||||
glu32
|
||||
kernel32
|
||||
ntdll)
|
||||
|
||||
add_importlibs(opengl32 gdi32 user32 advapi32 msvcrt kernel32 ntdll)
|
||||
add_pch(opengl32 opengl32.h)
|
||||
|
||||
add_cd_file(TARGET opengl32 DESTINATION reactos/system32 FOR all)
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -363,7 +363,7 @@
|
|||
@ stdcall wglSwapBuffers(long) rosglSwapBuffers
|
||||
@ stdcall wglSwapLayerBuffers(long long) rosglSwapLayerBuffers
|
||||
@ stub wglSwapMultipleBuffers
|
||||
@ stdcall wglUseFontBitmapsA(long long long long) rosglUseFontBitmapsA
|
||||
@ stdcall wglUseFontBitmapsW(long long long long) rosglUseFontBitmapsW
|
||||
@ stdcall wglUseFontOutlinesA(long long long long long long long ptr) rosglUseFontOutlinesA
|
||||
@ stdcall wglUseFontOutlinesW(long long long long long long long ptr) rosglUseFontOutlinesW
|
||||
@ stdcall wglUseFontBitmapsA(long long long long)
|
||||
@ stdcall wglUseFontBitmapsW(long long long long)
|
||||
@ stdcall wglUseFontOutlinesA(long long long long long long long ptr)
|
||||
@ stdcall wglUseFontOutlinesW(long long long long long long long ptr)
|
||||
|
|
|
@ -1241,41 +1241,6 @@ rosglSwapLayerBuffers( HDC hdc, UINT fuPlanes )
|
|||
return ret;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
rosglUseFontBitmapsA( HDC hdc, DWORD first, DWORD count, DWORD listBase )
|
||||
{
|
||||
return IntUseFontBitmapsA(hdc, first, count, listBase);
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
rosglUseFontBitmapsW( HDC hdc, DWORD first, DWORD count, DWORD listBase )
|
||||
{
|
||||
return IntUseFontBitmapsW(hdc, first, count, listBase);
|
||||
}
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
rosglUseFontOutlinesA( HDC hdc, DWORD first, DWORD count, DWORD listBase,
|
||||
FLOAT deviation, FLOAT extrusion, int format,
|
||||
GLYPHMETRICSFLOAT *pgmf )
|
||||
{
|
||||
return IntUseFontOutlinesA(hdc, first, count, listBase, deviation, extrusion, format, pgmf);
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
APIENTRY
|
||||
rosglUseFontOutlinesW( HDC hdc, DWORD first, DWORD count, DWORD listBase,
|
||||
FLOAT deviation, FLOAT extrusion, int format,
|
||||
GLYPHMETRICSFLOAT *pgmf )
|
||||
{
|
||||
return IntUseFontOutlinesW(hdc, first, count, listBase, deviation, extrusion, format, pgmf);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}; /* extern "C" */
|
||||
#endif /* __cplusplus */
|
||||
|
|
|
@ -145,6 +145,7 @@ add_subdirectory(pdh)
|
|||
add_subdirectory(pidgen)
|
||||
add_subdirectory(powrprof)
|
||||
add_subdirectory(printui)
|
||||
add_subdirectory(propsys)
|
||||
add_subdirectory(psapi)
|
||||
add_subdirectory(pstorec)
|
||||
add_subdirectory(qmgr)
|
||||
|
|
|
@ -15,15 +15,15 @@
|
|||
typedef struct _FIBER /* Field offsets: */
|
||||
{ /* 32 bit 64 bit */
|
||||
/* this must be the first field */
|
||||
LPVOID Parameter; /* 0x00 0x00 */
|
||||
struct _EXCEPTION_REGISTRATION_RECORD * ExceptionList; /* 0x04 0x08 */
|
||||
LPVOID StackBase; /* 0x08 0x10 */
|
||||
LPVOID StackLimit; /* 0x0C 0x18 */
|
||||
LPVOID DeallocationStack; /* 0x10 0x20 */
|
||||
PVOID Parameter; /* 0x00 0x00 */
|
||||
PEXCEPTION_REGISTRATION_RECORD ExceptionList; /* 0x04 0x08 */
|
||||
PVOID StackBase; /* 0x08 0x10 */
|
||||
PVOID StackLimit; /* 0x0C 0x18 */
|
||||
PVOID DeallocationStack; /* 0x10 0x20 */
|
||||
CONTEXT Context; /* 0x14 0x28 */
|
||||
ULONG GuaranteedStackBytes; /* 0x2E0 */
|
||||
PVOID FlsData; /* 0x2E4 */
|
||||
PVOID ActivationContextStack; /* 0x2E8 */
|
||||
PACTIVATION_CONTEXT_STACK ActivationContextStack; /* 0x2E8 */
|
||||
} FIBER, *PFIBER;
|
||||
|
||||
/* PRIVATE FUNCTIONS **********************************************************/
|
||||
|
@ -171,7 +171,7 @@ CreateFiberEx(SIZE_T dwStackCommitSize,
|
|||
PFIBER Fiber;
|
||||
NTSTATUS Status;
|
||||
INITIAL_TEB InitialTeb;
|
||||
PVOID ActivationContextStack = NULL;
|
||||
PACTIVATION_CONTEXT_STACK ActivationContextStack = NULL;
|
||||
DPRINT("Creating Fiber\n");
|
||||
|
||||
/* Check for invalid flags */
|
||||
|
@ -195,6 +195,9 @@ CreateFiberEx(SIZE_T dwStackCommitSize,
|
|||
Fiber = RtlAllocateHeap(RtlGetProcessHeap(), 0, sizeof(FIBER));
|
||||
if (!Fiber)
|
||||
{
|
||||
/* Free the activation context stack */
|
||||
RtlFreeActivationContextStack(ActivationContextStack);
|
||||
|
||||
/* Fail */
|
||||
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
|
||||
return NULL;
|
||||
|
@ -210,9 +213,8 @@ CreateFiberEx(SIZE_T dwStackCommitSize,
|
|||
/* Free the fiber */
|
||||
RtlFreeHeap(GetProcessHeap(), 0, Fiber);
|
||||
|
||||
/* Free the activation context */
|
||||
DPRINT1("Leaking activation stack because nobody implemented free");
|
||||
//RtlFreeActivationContextStack(&ActivationContextStack);
|
||||
/* Free the activation context stack */
|
||||
RtlFreeActivationContextStack(ActivationContextStack);
|
||||
|
||||
/* Failure */
|
||||
BaseSetLastNTError(Status);
|
||||
|
@ -271,9 +273,8 @@ DeleteFiber(LPVOID lpFiber)
|
|||
/* Get rid of FLS */
|
||||
if (Fiber->FlsData) BaseRundownFls(Fiber->FlsData);
|
||||
|
||||
/* Get rid of the activation stack */
|
||||
DPRINT1("Leaking activation stack because nobody implemented free");
|
||||
//RtlFreeActivationContextStack(Fiber->ActivationContextStack);
|
||||
/* Get rid of the activation context stack */
|
||||
RtlFreeActivationContextStack(Fiber->ActivationContextStack);
|
||||
|
||||
/* Free the fiber data */
|
||||
RtlFreeHeap(GetProcessHeap(), 0, lpFiber);
|
||||
|
|
|
@ -171,7 +171,7 @@ CreateRemoteThread(IN HANDLE hProcess,
|
|||
ULONG Dummy;
|
||||
PTEB Teb;
|
||||
THREAD_BASIC_INFORMATION ThreadBasicInfo;
|
||||
PVOID ActivationContextStack = NULL;
|
||||
PACTIVATION_CONTEXT_STACK ActivationContextStack = NULL;
|
||||
ACTIVATION_CONTEXT_BASIC_INFORMATION ActCtxInfo;
|
||||
ULONG_PTR Cookie;
|
||||
ULONG ReturnLength;
|
||||
|
@ -191,7 +191,7 @@ CreateRemoteThread(IN HANDLE hProcess,
|
|||
dwCreationFlags & STACK_SIZE_PARAM_IS_A_RESERVATION ?
|
||||
dwStackSize : 0,
|
||||
&InitialTeb);
|
||||
if(!NT_SUCCESS(Status))
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
BaseSetLastNTError(Status);
|
||||
return NULL;
|
||||
|
@ -260,7 +260,7 @@ CreateRemoteThread(IN HANDLE hProcess,
|
|||
Teb->ActivationContextStackPointer = ActivationContextStack;
|
||||
|
||||
/* Query the Context */
|
||||
// WARNING!!! THIS IS USING THE WIN32 FLAG BECAUSE REACTOS CONTINUES TO BE A POS!!! ///
|
||||
// WARNING!!! THIS IS USING THE WIN32 FLAG BECAUSE REACTOS CONTINUES TO BE A POS!!! ///
|
||||
Status = RtlQueryInformationActivationContext(QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX,
|
||||
NULL,
|
||||
0,
|
||||
|
@ -274,6 +274,11 @@ CreateRemoteThread(IN HANDLE hProcess,
|
|||
ERROR_DBGBREAK("SXS: %s - Failing thread create because "
|
||||
"RtlQueryInformationActivationContext() failed with status %08lx\n",
|
||||
__FUNCTION__, Status);
|
||||
|
||||
/* Free the activation context stack */
|
||||
// RtlFreeThreadActivationContextStack();
|
||||
RtlFreeActivationContextStack(Teb->ActivationContextStackPointer);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -291,6 +296,11 @@ CreateRemoteThread(IN HANDLE hProcess,
|
|||
ERROR_DBGBREAK("SXS: %s - Failing thread create because "
|
||||
"RtlActivateActivationContextEx() failed with status %08lx\n",
|
||||
__FUNCTION__, Status);
|
||||
|
||||
/* Free the activation context stack */
|
||||
// RtlFreeThreadActivationContextStack();
|
||||
RtlFreeActivationContextStack(Teb->ActivationContextStackPointer);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
@ -299,7 +309,6 @@ CreateRemoteThread(IN HANDLE hProcess,
|
|||
/* Notify CSR */
|
||||
if (!BaseRunningInServerProcess)
|
||||
{
|
||||
/* Notify CSR */
|
||||
Status = BasepNotifyCsrOfThread(hThread, &ClientId);
|
||||
ASSERT(NT_SUCCESS(Status));
|
||||
}
|
||||
|
|
|
@ -231,7 +231,7 @@ LsapAddAuthPackage(IN PWSTR ValueName,
|
|||
TRACE("Package Name: %s\n", Package->Name->Buffer);
|
||||
|
||||
Package->Id = *Id;
|
||||
*Id++;
|
||||
(*Id)++;
|
||||
|
||||
InsertTailList(&PackageListHead, &Package->Entry);
|
||||
|
||||
|
|
|
@ -15,6 +15,113 @@ WINE_DEFAULT_DEBUG_CHANNEL(lsasrv);
|
|||
|
||||
/* FUNCTIONS ***************************************************************/
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
LsaIFree_LSAPR_POLICY_INFORMATION(IN POLICY_INFORMATION_CLASS InformationClass,
|
||||
IN PLSAPR_POLICY_INFORMATION PolicyInformation)
|
||||
{
|
||||
if (PolicyInformation != NULL)
|
||||
{
|
||||
switch (InformationClass)
|
||||
{
|
||||
case PolicyAuditLogInformation: /* 1 */
|
||||
break;
|
||||
|
||||
case PolicyAuditEventsInformation: /* 2 */
|
||||
if (PolicyInformation->PolicyAuditEventsInfo.EventAuditingOptions != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyAuditEventsInfo.EventAuditingOptions);
|
||||
break;
|
||||
|
||||
case PolicyPrimaryDomainInformation: /* 3 */
|
||||
if (PolicyInformation->PolicyPrimaryDomInfo.Name.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyPrimaryDomInfo.Name.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyPrimaryDomInfo.Sid != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyPrimaryDomInfo.Sid);
|
||||
break;
|
||||
|
||||
case PolicyPdAccountInformation: /* 4 */
|
||||
if (PolicyInformation->PolicyPdAccountInfo.Name.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyPdAccountInfo.Name.Buffer);
|
||||
break;
|
||||
|
||||
case PolicyAccountDomainInformation: /* 5 */
|
||||
if (PolicyInformation->PolicyAccountDomainInfo.DomainName.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyAccountDomainInfo.DomainName.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyAccountDomainInfo.Sid != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyAccountDomainInfo.Sid);
|
||||
break;
|
||||
|
||||
case PolicyLsaServerRoleInformation: /* 6 */
|
||||
break;
|
||||
|
||||
case PolicyReplicaSourceInformation: /* 7 */
|
||||
if (PolicyInformation->PolicyReplicaSourceInfo.ReplicaSource.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyReplicaSourceInfo.ReplicaSource.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyReplicaSourceInfo.ReplicaAccountName.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyReplicaSourceInfo.ReplicaAccountName.Buffer);
|
||||
break;
|
||||
|
||||
case PolicyDefaultQuotaInformation: /* 8 */
|
||||
break;
|
||||
|
||||
case PolicyModificationInformation: /* 9 */
|
||||
break;
|
||||
|
||||
case PolicyAuditFullSetInformation: /* 10 (0xA) */
|
||||
break;
|
||||
|
||||
case PolicyAuditFullQueryInformation: /* 11 (0xB) */
|
||||
break;
|
||||
|
||||
case PolicyDnsDomainInformation: /* 12 (0xC) */
|
||||
if (PolicyInformation->PolicyDnsDomainInfo.Name.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyDnsDomainInfo.Name.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyDnsDomainInfo.DnsDomainName.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyDnsDomainInfo.DnsDomainName.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyDnsDomainInfo.DnsForestName.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyDnsDomainInfo.DnsForestName.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyDnsDomainInfo.Sid != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyDnsDomainInfo.Sid);
|
||||
break;
|
||||
|
||||
case PolicyDnsDomainInformationInt: /* 13 (0xD) */
|
||||
if (PolicyInformation->PolicyDnsDomainInfoInt.Name.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyDnsDomainInfoInt.Name.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyDnsDomainInfoInt.DnsDomainName.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyDnsDomainInfoInt.DnsDomainName.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyDnsDomainInfoInt.DnsForestName.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyDnsDomainInfoInt.DnsForestName.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyDnsDomainInfoInt.Sid != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyDnsDomainInfoInt.Sid);
|
||||
break;
|
||||
|
||||
case PolicyLocalAccountDomainInformation: /* 14 (0xE) */
|
||||
if (PolicyInformation->PolicyLocalAccountDomainInfo.DomainName.Buffer != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyLocalAccountDomainInfo.DomainName.Buffer);
|
||||
|
||||
if (PolicyInformation->PolicyLocalAccountDomainInfo.Sid != NULL)
|
||||
midl_user_free(PolicyInformation->PolicyLocalAccountDomainInfo.Sid);
|
||||
break;
|
||||
|
||||
default:
|
||||
ERR("Invalid InformationClass: %lu\n", InformationClass);
|
||||
break;
|
||||
}
|
||||
|
||||
midl_user_free(PolicyInformation);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS WINAPI
|
||||
LsapInitLsa(VOID)
|
||||
{
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
@ stub LsaIAuditNotifyPackageLoad
|
||||
@ stub LsaIAuditSamEvent
|
||||
@ stub LsaIEnumerateSecrets
|
||||
|
@ -6,7 +5,7 @@
|
|||
@ stub LsaIFree_LSAI_SECRET_ENUM_BUFFER
|
||||
@ stub LsaIFree_LSAPR_ACCOUNT_ENUM_BUFFER
|
||||
@ stub LsaIFree_LSAPR_CR_CIPHER_VALUE
|
||||
@ stub LsaIFree_LSAPR_POLICY_INFORMATION
|
||||
@ stdcall LsaIFree_LSAPR_POLICY_INFORMATION(long ptr)
|
||||
@ stub LsaIFree_LSAPR_PRIVILEGE_ENUM_BUFFER
|
||||
@ stub LsaIFree_LSAPR_PRIVILEGE_SET
|
||||
@ stub LsaIFree_LSAPR_REFERENCED_DOMAIN_LIST
|
||||
|
|
|
@ -824,8 +824,7 @@ LsarSetAuditEvents(PLSA_DB_OBJECT PolicyObject,
|
|||
AuditData,
|
||||
AttributeSize);
|
||||
|
||||
if (AuditData != NULL)
|
||||
RtlFreeHeap(RtlGetProcessHeap(), 0, AuditData);
|
||||
RtlFreeHeap(RtlGetProcessHeap(), 0, AuditData);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ list(APPEND SOURCE
|
|||
add_library(msv1_0 SHARED ${SOURCE})
|
||||
set_module_type(msv1_0 win32dll UNICODE ENTRYPOINT 0)
|
||||
target_link_libraries(msv1_0 wine ${PSEH_LIB})
|
||||
add_delay_importlibs(msv1_0 samsrv lsasrv)
|
||||
add_importlibs(msv1_0 kernel32 ntdll)
|
||||
add_pch(msv1_0 msv1_0.h)
|
||||
add_dependencies(msv1_0 psdk)
|
||||
|
|
|
@ -20,6 +20,55 @@ LSA_DISPATCH_TABLE DispatchTable;
|
|||
|
||||
/* FUNCTIONS ***************************************************************/
|
||||
|
||||
static
|
||||
NTSTATUS
|
||||
GetDomainSid(PRPC_SID *Sid)
|
||||
{
|
||||
LSAPR_HANDLE PolicyHandle = NULL;
|
||||
PLSAPR_POLICY_INFORMATION PolicyInfo = NULL;
|
||||
ULONG Length = 0;
|
||||
NTSTATUS Status;
|
||||
|
||||
Status = LsaIOpenPolicyTrusted(&PolicyHandle);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
TRACE("LsaIOpenPolicyTrusted() failed (Status 0x%08lx)\n", Status);
|
||||
return Status;
|
||||
}
|
||||
|
||||
Status = LsarQueryInformationPolicy(PolicyHandle,
|
||||
PolicyAccountDomainInformation,
|
||||
&PolicyInfo);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
TRACE("LsarQueryInformationPolicy() failed (Status 0x%08lx)\n", Status);
|
||||
goto done;
|
||||
}
|
||||
|
||||
Length = RtlLengthSid(PolicyInfo->PolicyAccountDomainInfo.Sid);
|
||||
|
||||
*Sid = RtlAllocateHeap(RtlGetProcessHeap(), 0, Length);
|
||||
if (*Sid == NULL)
|
||||
{
|
||||
ERR("Failed to allocate SID\n");
|
||||
Status = STATUS_INSUFFICIENT_RESOURCES;
|
||||
goto done;
|
||||
}
|
||||
|
||||
memcpy(*Sid, PolicyInfo->PolicyAccountDomainInfo.Sid, Length);
|
||||
|
||||
done:
|
||||
if (PolicyInfo != NULL)
|
||||
LsaIFree_LSAPR_POLICY_INFORMATION(PolicyAccountDomainInformation,
|
||||
PolicyInfo);
|
||||
|
||||
if (PolicyHandle != NULL)
|
||||
LsarClose(&PolicyHandle);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
|
@ -95,6 +144,10 @@ LsaApInitializePackage(IN ULONG AuthenticationPackageId,
|
|||
/* Get the dispatch table entries */
|
||||
DispatchTable.AllocateLsaHeap = LsaDispatchTable->AllocateLsaHeap;
|
||||
DispatchTable.FreeLsaHeap = LsaDispatchTable->FreeLsaHeap;
|
||||
DispatchTable.AllocateClientBuffer = LsaDispatchTable->AllocateClientBuffer;
|
||||
DispatchTable.FreeClientBuffer = LsaDispatchTable->FreeClientBuffer;
|
||||
DispatchTable.CopyToClientBuffer = LsaDispatchTable->CopyToClientBuffer;
|
||||
DispatchTable.CopyFromClientBuffer = LsaDispatchTable->CopyFromClientBuffer;
|
||||
|
||||
|
||||
/* Return the package name */
|
||||
|
@ -149,7 +202,186 @@ LsaApLogonUser(IN PLSA_CLIENT_REQUEST ClientRequest,
|
|||
OUT PLSA_UNICODE_STRING *AccountName,
|
||||
OUT PLSA_UNICODE_STRING *AuthenticatingAuthority)
|
||||
{
|
||||
PMSV1_0_INTERACTIVE_LOGON LogonInfo;
|
||||
|
||||
SAMPR_HANDLE ServerHandle = NULL;
|
||||
SAMPR_HANDLE DomainHandle = NULL;
|
||||
PRPC_SID AccountDomainSid = NULL;
|
||||
RPC_UNICODE_STRING Names[1];
|
||||
SAMPR_ULONG_ARRAY RelativeIds = {0, NULL};
|
||||
SAMPR_ULONG_ARRAY Use = {0, NULL};
|
||||
NTSTATUS Status;
|
||||
|
||||
TRACE("()\n");
|
||||
|
||||
TRACE("LogonType: %lu\n", LogonType);
|
||||
TRACE("AuthenticationInformation: %p\n", AuthenticationInformation);
|
||||
TRACE("AuthenticationInformationLength: %lu\n", AuthenticationInformationLength);
|
||||
|
||||
|
||||
*ProfileBuffer = NULL;
|
||||
*ProfileBufferLength = 0;
|
||||
*SubStatus = STATUS_SUCCESS;
|
||||
|
||||
if (LogonType == Interactive ||
|
||||
LogonType == Batch ||
|
||||
LogonType == Service)
|
||||
{
|
||||
ULONG_PTR PtrOffset;
|
||||
|
||||
LogonInfo = (PMSV1_0_INTERACTIVE_LOGON)AuthenticationInformation;
|
||||
|
||||
/* Fix-up pointers in the authentication info */
|
||||
PtrOffset = (ULONG_PTR)AuthenticationInformation - (ULONG_PTR)ClientAuthenticationBase;
|
||||
|
||||
LogonInfo->LogonDomainName.Buffer = (PWSTR)((ULONG_PTR)LogonInfo->LogonDomainName.Buffer + PtrOffset);
|
||||
LogonInfo->UserName.Buffer = (PWSTR)((ULONG_PTR)LogonInfo->UserName.Buffer + PtrOffset);
|
||||
LogonInfo->Password.Buffer = (PWSTR)((ULONG_PTR)LogonInfo->Password.Buffer + PtrOffset);
|
||||
|
||||
TRACE("Domain: %S\n", LogonInfo->LogonDomainName.Buffer);
|
||||
TRACE("User: %S\n", LogonInfo->UserName.Buffer);
|
||||
TRACE("Password: %S\n", LogonInfo->Password.Buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
FIXME("LogonType %lu is not supported yet!\n", LogonType);
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
Status = GetDomainSid(&AccountDomainSid);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
TRACE("GetDomainSid() failed (Status 0x%08lx)\n", Status);
|
||||
return Status;
|
||||
}
|
||||
|
||||
/* Connect to the SAM server */
|
||||
Status = SamIConnect(NULL,
|
||||
&ServerHandle,
|
||||
SAM_SERVER_CONNECT | SAM_SERVER_LOOKUP_DOMAIN,
|
||||
TRUE);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
TRACE("SamIConnect() failed (Status 0x%08lx)\n", Status);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Open the account domain */
|
||||
Status = SamrOpenDomain(ServerHandle,
|
||||
DOMAIN_LOOKUP,
|
||||
AccountDomainSid,
|
||||
&DomainHandle);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
TRACE("SamrOpenDomain failed (Status %08lx)\n", Status);
|
||||
goto done;
|
||||
}
|
||||
|
||||
Names[0].Length = LogonInfo->UserName.Length;
|
||||
Names[0].MaximumLength = LogonInfo->UserName.MaximumLength;
|
||||
Names[0].Buffer = LogonInfo->UserName.Buffer;
|
||||
|
||||
/* Try to get the RID for the user name */
|
||||
Status = SamrLookupNamesInDomain(DomainHandle,
|
||||
1,
|
||||
Names,
|
||||
&RelativeIds,
|
||||
&Use);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
TRACE("SamrLookupNamesInDomain failed (Status %08lx)\n", Status);
|
||||
Status = STATUS_NO_SUCH_USER;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* Fail, if it is not a user account */
|
||||
if (Use.Element[0] != SidTypeUser)
|
||||
{
|
||||
TRACE("Account is not a user account!\n");
|
||||
Status = STATUS_NO_SUCH_USER;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
||||
|
||||
done:
|
||||
SamIFree_SAMPR_ULONG_ARRAY(&RelativeIds);
|
||||
SamIFree_SAMPR_ULONG_ARRAY(&Use);
|
||||
|
||||
if (DomainHandle != NULL)
|
||||
SamrCloseHandle(&DomainHandle);
|
||||
|
||||
if (ServerHandle != NULL)
|
||||
SamrCloseHandle(&ServerHandle);
|
||||
|
||||
if (AccountDomainSid != NULL)
|
||||
RtlFreeHeap(RtlGetProcessHeap(), 0, AccountDomainSid);
|
||||
|
||||
TRACE("LsaApLogonUser done (Status %08lx)\n", Status);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
LsaApLogonUserEx(IN PLSA_CLIENT_REQUEST ClientRequest,
|
||||
IN SECURITY_LOGON_TYPE LogonType,
|
||||
IN PVOID AuthenticationInformation,
|
||||
IN PVOID ClientAuthenticationBase,
|
||||
IN ULONG AuthenticationInformationLength,
|
||||
OUT PVOID *ProfileBuffer,
|
||||
OUT PULONG ProfileBufferLength,
|
||||
OUT PLUID LogonId,
|
||||
OUT PNTSTATUS SubStatus,
|
||||
OUT PLSA_TOKEN_INFORMATION_TYPE TokenInformationType,
|
||||
OUT PVOID *TokenInformation,
|
||||
OUT PUNICODE_STRING *AccountName,
|
||||
OUT PUNICODE_STRING *AuthenticatingAuthority,
|
||||
OUT PUNICODE_STRING *MachineName)
|
||||
{
|
||||
TRACE("()\n");
|
||||
|
||||
TRACE("LogonType: %lu\n", LogonType);
|
||||
TRACE("AuthenticationInformation: %p\n", AuthenticationInformation);
|
||||
TRACE("AuthenticationInformationLength: %lu\n", AuthenticationInformationLength);
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
LsaApLogonUserEx2(IN PLSA_CLIENT_REQUEST ClientRequest,
|
||||
IN SECURITY_LOGON_TYPE LogonType,
|
||||
IN PVOID ProtocolSubmitBuffer,
|
||||
IN PVOID ClientBufferBase,
|
||||
IN ULONG SubmitBufferSize,
|
||||
OUT PVOID *ProfileBuffer,
|
||||
OUT PULONG ProfileBufferSize,
|
||||
OUT PLUID LogonId,
|
||||
OUT PNTSTATUS SubStatus,
|
||||
OUT PLSA_TOKEN_INFORMATION_TYPE TokenInformationType,
|
||||
OUT PVOID *TokenInformation,
|
||||
OUT PUNICODE_STRING *AccountName,
|
||||
OUT PUNICODE_STRING *AuthenticatingAuthority,
|
||||
OUT PUNICODE_STRING *MachineName,
|
||||
OUT PSECPKG_PRIMARY_CRED PrimaryCredentials,
|
||||
OUT PSECPKG_SUPPLEMENTAL_CRED_ARRAY *SupplementalCredentials)
|
||||
{
|
||||
TRACE("()\n");
|
||||
|
||||
TRACE("LogonType: %lu\n", LogonType);
|
||||
TRACE("ProtocolSubmitBuffer: %p\n", ProtocolSubmitBuffer);
|
||||
TRACE("SubmitBufferSize: %lu\n", SubmitBufferSize);
|
||||
|
||||
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,145 @@
|
|||
#include <sspi.h>
|
||||
#include <ntsecapi.h>
|
||||
#include <ntsecpkg.h>
|
||||
#include <ntsam.h>
|
||||
#include <ntlsa.h>
|
||||
|
||||
#include <samsrv/samsrv.h>
|
||||
//#include <lsass/lsasrv.h>
|
||||
|
||||
#include <wine/debug.h>
|
||||
|
||||
typedef struct _RPC_SID
|
||||
{
|
||||
UCHAR Revision;
|
||||
UCHAR SubAuthorityCount;
|
||||
SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
|
||||
DWORD SubAuthority[];
|
||||
} RPC_SID, *PRPC_SID;
|
||||
|
||||
typedef struct _RPC_UNICODE_STRING
|
||||
{
|
||||
unsigned short Length;
|
||||
unsigned short MaximumLength;
|
||||
wchar_t *Buffer;
|
||||
} RPC_UNICODE_STRING, *PRPC_UNICODE_STRING;
|
||||
|
||||
typedef wchar_t *PSAMPR_SERVER_NAME;
|
||||
typedef void *SAMPR_HANDLE;
|
||||
|
||||
typedef struct _SAMPR_ULONG_ARRAY
|
||||
{
|
||||
ULONG Count;
|
||||
PULONG Element;
|
||||
} SAMPR_ULONG_ARRAY, *PSAMPR_ULONG_ARRAY;
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
SamIConnect(IN PSAMPR_SERVER_NAME ServerName,
|
||||
OUT SAMPR_HANDLE *ServerHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN BOOLEAN Trusted);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
SamIFree_SAMPR_ULONG_ARRAY(PSAMPR_ULONG_ARRAY Ptr);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
SamrCloseHandle(IN OUT SAMPR_HANDLE *SamHandle);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
SamrOpenDomain(IN SAMPR_HANDLE ServerHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN PRPC_SID DomainId,
|
||||
OUT SAMPR_HANDLE *DomainHandle);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
SamrLookupNamesInDomain(IN SAMPR_HANDLE DomainHandle,
|
||||
IN ULONG Count,
|
||||
IN RPC_UNICODE_STRING Names[],
|
||||
OUT PSAMPR_ULONG_ARRAY RelativeIds,
|
||||
OUT PSAMPR_ULONG_ARRAY Use);
|
||||
|
||||
typedef PVOID LSAPR_HANDLE;
|
||||
|
||||
typedef struct _LSAPR_POLICY_AUDIT_EVENTS_INFO
|
||||
{
|
||||
BOOLEAN AuditingMode;
|
||||
DWORD *EventAuditingOptions;
|
||||
DWORD MaximumAuditEventCount;
|
||||
} LSAPR_POLICY_AUDIT_EVENTS_INFO, *PLSAPR_POLICY_AUDIT_EVENTS_INFO;
|
||||
|
||||
typedef struct _LSAPR_POLICY_PRIMARY_DOM_INFO
|
||||
{
|
||||
RPC_UNICODE_STRING Name;
|
||||
PRPC_SID Sid;
|
||||
} LSAPR_POLICY_PRIMARY_DOM_INFO, *PLSAPR_POLICY_PRIMARY_DOM_INFO;
|
||||
|
||||
typedef struct _LSAPR_POLICY_ACCOUNT_DOM_INFO
|
||||
{
|
||||
RPC_UNICODE_STRING DomainName;
|
||||
PRPC_SID Sid;
|
||||
} LSAPR_POLICY_ACCOUNT_DOM_INFO, *PLSAPR_POLICY_ACCOUNT_DOM_INFO;
|
||||
|
||||
typedef struct _LSAPR_POLICY_PD_ACCOUNT_INFO
|
||||
{
|
||||
RPC_UNICODE_STRING Name;
|
||||
} LSAPR_POLICY_PD_ACCOUNT_INFO, *PLSAPR_POLICY_PD_ACCOUNT_INFO;
|
||||
|
||||
typedef struct _POLICY_LSA_REPLICA_SRCE_INFO
|
||||
{
|
||||
RPC_UNICODE_STRING ReplicaSource;
|
||||
RPC_UNICODE_STRING ReplicaAccountName;
|
||||
} POLICY_LSA_REPLICA_SRCE_INFO, *PPOLICY_LSA_REPLICA_SRCE_INFO;
|
||||
|
||||
typedef struct _LSAPR_POLICY_DNS_DOMAIN_INFO
|
||||
{
|
||||
RPC_UNICODE_STRING Name;
|
||||
RPC_UNICODE_STRING DnsDomainName;
|
||||
RPC_UNICODE_STRING DnsForestName;
|
||||
GUID DomainGuid;
|
||||
PRPC_SID Sid;
|
||||
} LSAPR_POLICY_DNS_DOMAIN_INFO, *PLSAPR_POLICY_DNS_DOMAIN_INFO;
|
||||
|
||||
typedef union _LSAPR_POLICY_INFORMATION
|
||||
{
|
||||
POLICY_AUDIT_LOG_INFO PolicyAuditLogInfo;
|
||||
LSAPR_POLICY_AUDIT_EVENTS_INFO PolicyAuditEventsInfo;
|
||||
LSAPR_POLICY_PRIMARY_DOM_INFO PolicyPrimaryDomInfo;
|
||||
LSAPR_POLICY_PD_ACCOUNT_INFO PolicyPdAccountInfo;
|
||||
LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyAccountDomainInfo;
|
||||
POLICY_LSA_SERVER_ROLE_INFO PolicyServerRoleInfo;
|
||||
POLICY_LSA_REPLICA_SRCE_INFO PolicyReplicaSourceInfo;
|
||||
POLICY_DEFAULT_QUOTA_INFO PolicyDefaultQuotaInfo;
|
||||
POLICY_MODIFICATION_INFO PolicyModificationInfo;
|
||||
POLICY_AUDIT_FULL_SET_INFO PolicyAuditFullSetInfo;
|
||||
POLICY_AUDIT_FULL_QUERY_INFO PolicyAuditFullQueryInfo;
|
||||
LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfo;
|
||||
LSAPR_POLICY_DNS_DOMAIN_INFO PolicyDnsDomainInfoInt;
|
||||
LSAPR_POLICY_ACCOUNT_DOM_INFO PolicyLocalAccountDomainInfo;
|
||||
} LSAPR_POLICY_INFORMATION, *PLSAPR_POLICY_INFORMATION;
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
LsaIFree_LSAPR_POLICY_INFORMATION(IN POLICY_INFORMATION_CLASS InformationClass,
|
||||
IN PLSAPR_POLICY_INFORMATION PolicyInformation);
|
||||
|
||||
NTSTATUS
|
||||
WINAPI
|
||||
LsaIOpenPolicyTrusted(OUT LSAPR_HANDLE *PolicyHandle);
|
||||
|
||||
NTSTATUS
|
||||
WINAPI
|
||||
LsarClose(IN OUT LSAPR_HANDLE *ObjectHandle);
|
||||
|
||||
NTSTATUS
|
||||
WINAPI
|
||||
LsarQueryInformationPolicy(IN LSAPR_HANDLE PolicyHandle,
|
||||
IN POLICY_INFORMATION_CLASS InformationClass,
|
||||
OUT PLSAPR_POLICY_INFORMATION *PolicyInformation);
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
@ stdcall LsaApInitializePackage(long ptr ptr ptr ptr)
|
||||
@ stdcall LsaApLogonTerminated(ptr)
|
||||
@ stdcall LsaApLogonUser(ptr long ptr ptr long ptr ptr ptr ptr ptr ptr ptr ptr)
|
||||
@ stub LsaApLogonUserEx
|
||||
@ stub LsaApLogonUserEx2
|
||||
#@ stdcall LsaApLogonUserEx(ptr long ptr ptr long ptr ptr ptr ptr ptr ptr ptr ptr ptr)
|
||||
#@ stdcall LsaApLogonUserEx2(ptr long ptr ptr long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr)
|
||||
@ stub Msv1_0ExportSubAuthenticationRoutine
|
||||
@ stub Msv1_0SubAuthenticationPresent
|
||||
@ stub MsvGetLogonAttemptCount
|
||||
|
|
|
@ -606,7 +606,7 @@ static HRESULT WINAPI domattr_put_value(
|
|||
|
||||
TRACE("(%p)->(%s)\n", This, debugstr_variant(&value));
|
||||
|
||||
return node_put_value(&This->node, &value);
|
||||
return node_put_value_escaped(&This->node, &value);
|
||||
}
|
||||
|
||||
static const struct IXMLDOMAttributeVtbl domattr_vtbl =
|
||||
|
|
|
@ -293,10 +293,9 @@ static HRESULT WINAPI domcdata_insertBefore(
|
|||
IXMLDOMNode** outOldNode)
|
||||
{
|
||||
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
|
||||
|
||||
FIXME("(%p)->(%p %s %p) needs test\n", This, newNode, debugstr_variant(&refChild), outOldNode);
|
||||
|
||||
return node_insert_before(&This->node, newNode, &refChild, outOldNode);
|
||||
TRACE("(%p)->(%p %s %p)\n", This, newNode, debugstr_variant(&refChild), outOldNode);
|
||||
if (outOldNode) *outOldNode = NULL;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI domcdata_replaceChild(
|
||||
|
@ -306,10 +305,9 @@ static HRESULT WINAPI domcdata_replaceChild(
|
|||
IXMLDOMNode** outOldNode)
|
||||
{
|
||||
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
|
||||
|
||||
FIXME("(%p)->(%p %p %p) needs tests\n", This, newNode, oldNode, outOldNode);
|
||||
|
||||
return node_replace_child(&This->node, newNode, oldNode, outOldNode);
|
||||
TRACE("(%p)->(%p %p %p)\n", This, newNode, oldNode, outOldNode);
|
||||
if (outOldNode) *outOldNode = NULL;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI domcdata_removeChild(
|
||||
|
@ -318,7 +316,8 @@ static HRESULT WINAPI domcdata_removeChild(
|
|||
{
|
||||
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
|
||||
TRACE("(%p)->(%p %p)\n", This, child, oldChild);
|
||||
return node_remove_child(&This->node, child, oldChild);
|
||||
if (oldChild) *oldChild = NULL;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI domcdata_appendChild(
|
||||
|
@ -327,7 +326,8 @@ static HRESULT WINAPI domcdata_appendChild(
|
|||
{
|
||||
domcdata *This = impl_from_IXMLDOMCDATASection( iface );
|
||||
TRACE("(%p)->(%p %p)\n", This, child, outChild);
|
||||
return node_append_child(&This->node, child, outChild);
|
||||
if (outChild) *outChild = NULL;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI domcdata_hasChildNodes(
|
||||
|
|
|
@ -601,6 +601,7 @@ static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc
|
|||
hres = IUnknown_QueryInterface(This->outer, get_riid_from_tid(data->funcs[n].tid), (void**)&unk);
|
||||
if(FAILED(hres)) {
|
||||
ERR("Could not get iface: %08x\n", hres);
|
||||
ITypeInfo_Release(ti);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
|
|
|
@ -135,9 +135,6 @@ struct domdoc
|
|||
bsc_t *bsc;
|
||||
HRESULT error;
|
||||
|
||||
/* IPersistStream */
|
||||
IStream *stream;
|
||||
|
||||
/* IObjectWithSite*/
|
||||
IUnknown *site;
|
||||
|
||||
|
@ -559,19 +556,28 @@ void xmldoc_init(xmlDocPtr doc, MSXML_VERSION version)
|
|||
priv_from_xmlDocPtr(doc)->properties = create_properties(version);
|
||||
}
|
||||
|
||||
LONG xmldoc_add_ref(xmlDocPtr doc)
|
||||
LONG xmldoc_add_refs(xmlDocPtr doc, LONG refs)
|
||||
{
|
||||
LONG ref = InterlockedIncrement(&priv_from_xmlDocPtr(doc)->refs);
|
||||
LONG ref = InterlockedExchangeAdd(&priv_from_xmlDocPtr(doc)->refs, refs) + refs;
|
||||
TRACE("(%p)->(%d)\n", doc, ref);
|
||||
return ref;
|
||||
}
|
||||
|
||||
LONG xmldoc_release(xmlDocPtr doc)
|
||||
LONG xmldoc_add_ref(xmlDocPtr doc)
|
||||
{
|
||||
return xmldoc_add_refs(doc, 1);
|
||||
}
|
||||
|
||||
LONG xmldoc_release_refs(xmlDocPtr doc, LONG refs)
|
||||
{
|
||||
xmldoc_priv *priv = priv_from_xmlDocPtr(doc);
|
||||
LONG ref = InterlockedDecrement(&priv->refs);
|
||||
LONG ref = InterlockedExchangeAdd(&priv->refs, -refs) - refs;
|
||||
TRACE("(%p)->(%d)\n", doc, ref);
|
||||
if(ref == 0)
|
||||
|
||||
if (ref < 0)
|
||||
WARN("negative refcount, expect troubles\n");
|
||||
|
||||
if (ref == 0)
|
||||
{
|
||||
orphan_entry *orphan, *orphan2;
|
||||
TRACE("freeing docptr %p\n", doc);
|
||||
|
@ -590,6 +596,11 @@ LONG xmldoc_release(xmlDocPtr doc)
|
|||
return ref;
|
||||
}
|
||||
|
||||
LONG xmldoc_release(xmlDocPtr doc)
|
||||
{
|
||||
return xmldoc_release_refs(doc, 1);
|
||||
}
|
||||
|
||||
HRESULT xmldoc_add_orphan(xmlDocPtr doc, xmlNodePtr node)
|
||||
{
|
||||
xmldoc_priv *priv = priv_from_xmlDocPtr(doc);
|
||||
|
@ -624,7 +635,7 @@ HRESULT xmldoc_remove_orphan(xmlDocPtr doc, xmlNodePtr node)
|
|||
|
||||
static inline xmlDocPtr get_doc( domdoc *This )
|
||||
{
|
||||
return (xmlDocPtr)This->node.node;
|
||||
return This->node.node->doc;
|
||||
}
|
||||
|
||||
static HRESULT attach_xmldoc(domdoc *This, xmlDocPtr xml )
|
||||
|
@ -721,46 +732,42 @@ static HRESULT WINAPI PersistStreamInit_IsDirty(
|
|||
return S_FALSE;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI PersistStreamInit_Load(
|
||||
IPersistStreamInit *iface, LPSTREAM pStm)
|
||||
static HRESULT domdoc_load_from_stream(domdoc *doc, ISequentialStream *stream)
|
||||
{
|
||||
domdoc *This = impl_from_IPersistStreamInit(iface);
|
||||
HRESULT hr;
|
||||
HGLOBAL hglobal;
|
||||
DWORD read, written, len;
|
||||
BYTE buf[4096];
|
||||
char *ptr;
|
||||
xmlDocPtr xmldoc = NULL;
|
||||
IStream *hstream;
|
||||
HGLOBAL hglobal;
|
||||
BYTE buf[4096];
|
||||
HRESULT hr;
|
||||
char *ptr;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, pStm);
|
||||
|
||||
if (!pStm)
|
||||
return E_INVALIDARG;
|
||||
|
||||
hr = CreateStreamOnHGlobal(NULL, TRUE, &This->stream);
|
||||
hstream = NULL;
|
||||
hr = CreateStreamOnHGlobal(NULL, TRUE, &hstream);
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
do
|
||||
{
|
||||
IStream_Read(pStm, buf, sizeof(buf), &read);
|
||||
hr = IStream_Write(This->stream, buf, read, &written);
|
||||
ISequentialStream_Read(stream, buf, sizeof(buf), &read);
|
||||
hr = IStream_Write(hstream, buf, read, &written);
|
||||
} while(SUCCEEDED(hr) && written != 0 && read != 0);
|
||||
|
||||
if (FAILED(hr))
|
||||
{
|
||||
ERR("Failed to copy stream\n");
|
||||
ERR("failed to copy stream 0x%08x\n", hr);
|
||||
IStream_Release(hstream);
|
||||
return hr;
|
||||
}
|
||||
|
||||
hr = GetHGlobalFromStream(This->stream, &hglobal);
|
||||
hr = GetHGlobalFromStream(hstream, &hglobal);
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
len = GlobalSize(hglobal);
|
||||
ptr = GlobalLock(hglobal);
|
||||
if (len != 0)
|
||||
xmldoc = doparse(This, ptr, len, XML_CHAR_ENCODING_NONE);
|
||||
if (len)
|
||||
xmldoc = doparse(doc, ptr, len, XML_CHAR_ENCODING_NONE);
|
||||
GlobalUnlock(hglobal);
|
||||
|
||||
if (!xmldoc)
|
||||
|
@ -771,7 +778,19 @@ static HRESULT WINAPI PersistStreamInit_Load(
|
|||
|
||||
xmldoc->_private = create_priv();
|
||||
|
||||
return attach_xmldoc(This, xmldoc);
|
||||
return attach_xmldoc(doc, xmldoc);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, IStream *stream)
|
||||
{
|
||||
domdoc *This = impl_from_IPersistStreamInit(iface);
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, stream);
|
||||
|
||||
if (!stream)
|
||||
return E_INVALIDARG;
|
||||
|
||||
return domdoc_load_from_stream(This, (ISequentialStream*)stream);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI PersistStreamInit_Save(
|
||||
|
@ -801,7 +820,7 @@ static HRESULT WINAPI PersistStreamInit_GetSizeMax(
|
|||
IPersistStreamInit *iface, ULARGE_INTEGER *pcbSize)
|
||||
{
|
||||
domdoc *This = impl_from_IPersistStreamInit(iface);
|
||||
TRACE("(%p)->(%p): stub!\n", This, pcbSize);
|
||||
TRACE("(%p)->(%p)\n", This, pcbSize);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
@ -914,8 +933,6 @@ static ULONG WINAPI domdoc_Release( IXMLDOMDocument3 *iface )
|
|||
if (This->site)
|
||||
IUnknown_Release( This->site );
|
||||
destroy_xmlnode(&This->node);
|
||||
if (This->stream)
|
||||
IStream_Release(This->stream);
|
||||
|
||||
for (eid = 0; eid < EVENTID_LAST; eid++)
|
||||
if (This->events[eid]) IDispatch_Release(This->events[eid]);
|
||||
|
@ -1115,12 +1132,26 @@ static HRESULT WINAPI domdoc_insertBefore(
|
|||
IXMLDOMNode** outNewChild )
|
||||
{
|
||||
domdoc *This = impl_from_IXMLDOMDocument3( iface );
|
||||
DOMNodeType type;
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("(%p)->(%p %s %p)\n", This, newChild, debugstr_variant(&refChild), outNewChild);
|
||||
|
||||
return node_insert_before(&This->node, newChild, &refChild, outNewChild);
|
||||
}
|
||||
hr = IXMLDOMNode_get_nodeType(newChild, &type);
|
||||
if (hr != S_OK) return hr;
|
||||
|
||||
TRACE("new node type %d\n", type);
|
||||
switch (type)
|
||||
{
|
||||
case NODE_ATTRIBUTE:
|
||||
case NODE_DOCUMENT:
|
||||
case NODE_CDATA_SECTION:
|
||||
if (outNewChild) *outNewChild = NULL;
|
||||
return E_FAIL;
|
||||
default:
|
||||
return node_insert_before(&This->node, newChild, &refChild, outNewChild);
|
||||
}
|
||||
}
|
||||
|
||||
static HRESULT WINAPI domdoc_replaceChild(
|
||||
IXMLDOMDocument3 *iface,
|
||||
|
@ -1510,7 +1541,9 @@ static HRESULT WINAPI domdoc_put_documentElement(
|
|||
domdoc *This = impl_from_IXMLDOMDocument3( iface );
|
||||
IXMLDOMNode *elementNode;
|
||||
xmlNodePtr oldRoot;
|
||||
xmlDocPtr old_doc;
|
||||
xmlnode *xmlNode;
|
||||
int refcount = 0;
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, DOMElement);
|
||||
|
@ -1526,7 +1559,14 @@ static HRESULT WINAPI domdoc_put_documentElement(
|
|||
if(xmldoc_remove_orphan(xmlNode->node->doc, xmlNode->node) != S_OK)
|
||||
WARN("%p is not an orphan of %p\n", xmlNode->node->doc, xmlNode->node);
|
||||
|
||||
old_doc = xmlNode->node->doc;
|
||||
if (old_doc != get_doc(This))
|
||||
refcount = xmlnode_get_inst_cnt(xmlNode);
|
||||
|
||||
/* old root is still orphaned by its document, update refcount from new root */
|
||||
if (refcount) xmldoc_add_refs(get_doc(This), refcount);
|
||||
oldRoot = xmlDocSetRootElement( get_doc(This), xmlNode->node);
|
||||
if (refcount) xmldoc_release_refs(old_doc, refcount);
|
||||
IXMLDOMNode_Release( elementNode );
|
||||
|
||||
if(oldRoot)
|
||||
|
@ -2029,8 +2069,6 @@ static HRESULT WINAPI domdoc_load(
|
|||
domdoc *This = impl_from_IXMLDOMDocument3( iface );
|
||||
LPWSTR filename = NULL;
|
||||
HRESULT hr = S_FALSE;
|
||||
IXMLDOMDocument3 *pNewDoc = NULL;
|
||||
IStream *pStream = NULL;
|
||||
xmlDocPtr xmldoc;
|
||||
|
||||
TRACE("(%p)->(%s)\n", This, debugstr_variant(&source));
|
||||
|
@ -2096,13 +2134,18 @@ static HRESULT WINAPI domdoc_load(
|
|||
}
|
||||
break;
|
||||
case VT_UNKNOWN:
|
||||
{
|
||||
ISequentialStream *stream = NULL;
|
||||
IXMLDOMDocument3 *newdoc = NULL;
|
||||
|
||||
if (!V_UNKNOWN(&source)) return E_INVALIDARG;
|
||||
hr = IUnknown_QueryInterface(V_UNKNOWN(&source), &IID_IXMLDOMDocument3, (void**)&pNewDoc);
|
||||
|
||||
hr = IUnknown_QueryInterface(V_UNKNOWN(&source), &IID_IXMLDOMDocument3, (void**)&newdoc);
|
||||
if(hr == S_OK)
|
||||
{
|
||||
if(pNewDoc)
|
||||
if(newdoc)
|
||||
{
|
||||
domdoc *newDoc = impl_from_IXMLDOMDocument3( pNewDoc );
|
||||
domdoc *newDoc = impl_from_IXMLDOMDocument3( newdoc );
|
||||
|
||||
xmldoc = xmlCopyDoc(get_doc(newDoc), 1);
|
||||
xmldoc->_private = create_priv();
|
||||
|
@ -2114,40 +2157,25 @@ static HRESULT WINAPI domdoc_load(
|
|||
return hr;
|
||||
}
|
||||
}
|
||||
hr = IUnknown_QueryInterface(V_UNKNOWN(&source), &IID_IStream, (void**)&pStream);
|
||||
if(hr == S_OK)
|
||||
{
|
||||
IPersistStream *pDocStream;
|
||||
hr = IXMLDOMDocument3_QueryInterface(iface, &IID_IPersistStream, (void**)&pDocStream);
|
||||
if(hr == S_OK)
|
||||
{
|
||||
hr = IPersistStream_Load(pDocStream, pStream);
|
||||
IStream_Release(pStream);
|
||||
if(hr == S_OK)
|
||||
{
|
||||
*isSuccessful = VARIANT_TRUE;
|
||||
|
||||
TRACE("Using IStream to load Document\n");
|
||||
return S_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
ERR("xmldoc_IPersistStream_Load failed (%d)\n", hr);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ERR("QueryInterface IID_IPersistStream failed (%d)\n", hr);
|
||||
}
|
||||
}
|
||||
else
|
||||
hr = IUnknown_QueryInterface(V_UNKNOWN(&source), &IID_IStream, (void**)&stream);
|
||||
if (FAILED(hr))
|
||||
hr = IUnknown_QueryInterface(V_UNKNOWN(&source), &IID_ISequentialStream, (void**)&stream);
|
||||
|
||||
if (hr == S_OK)
|
||||
{
|
||||
/* ISequentialStream */
|
||||
FIXME("Unknown type not supported (%d) (%p)(%p)\n", hr, pNewDoc, V_UNKNOWN(&source)->lpVtbl);
|
||||
hr = domdoc_load_from_stream(This, stream);
|
||||
if (hr == S_OK)
|
||||
*isSuccessful = VARIANT_TRUE;
|
||||
ISequentialStream_Release(stream);
|
||||
return hr;
|
||||
}
|
||||
|
||||
FIXME("unsupported IUnknown type (0x%08x) (%p)\n", hr, V_UNKNOWN(&source)->lpVtbl);
|
||||
break;
|
||||
default:
|
||||
FIXME("VT type not supported (%d)\n", V_VT(&source));
|
||||
}
|
||||
default:
|
||||
FIXME("VT type not supported (%d)\n", V_VT(&source));
|
||||
}
|
||||
|
||||
if ( filename )
|
||||
|
@ -3251,12 +3279,43 @@ static HRESULT WINAPI ConnectionPoint_GetConnectionPointContainer(IConnectionPoi
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ConnectionPoint_Advise(IConnectionPoint *iface, IUnknown *pUnkSink,
|
||||
DWORD *pdwCookie)
|
||||
static HRESULT WINAPI ConnectionPoint_Advise(IConnectionPoint *iface, IUnknown *unk_sink,
|
||||
DWORD *cookie)
|
||||
{
|
||||
ConnectionPoint *This = impl_from_IConnectionPoint(iface);
|
||||
FIXME("(%p)->(%p %p): stub\n", This, pUnkSink, pdwCookie);
|
||||
return E_NOTIMPL;
|
||||
IUnknown *sink;
|
||||
HRESULT hr;
|
||||
DWORD i;
|
||||
|
||||
TRACE("(%p)->(%p %p)\n", This, unk_sink, cookie);
|
||||
|
||||
hr = IUnknown_QueryInterface(unk_sink, This->iid, (void**)&sink);
|
||||
if(FAILED(hr) && !IsEqualGUID(&IID_IPropertyNotifySink, This->iid))
|
||||
hr = IUnknown_QueryInterface(unk_sink, &IID_IDispatch, (void**)&sink);
|
||||
if(FAILED(hr))
|
||||
return CONNECT_E_CANNOTCONNECT;
|
||||
|
||||
if(This->sinks)
|
||||
{
|
||||
for (i = 0; i < This->sinks_size; i++)
|
||||
if (!This->sinks[i].unk)
|
||||
break;
|
||||
|
||||
if (i == This->sinks_size)
|
||||
This->sinks = heap_realloc(This->sinks,(++This->sinks_size)*sizeof(*This->sinks));
|
||||
}
|
||||
else
|
||||
{
|
||||
This->sinks = heap_alloc(sizeof(*This->sinks));
|
||||
This->sinks_size = 1;
|
||||
i = 0;
|
||||
}
|
||||
|
||||
This->sinks[i].unk = sink;
|
||||
if (cookie)
|
||||
*cookie = i+1;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ConnectionPoint_Unadvise(IConnectionPoint *iface, DWORD cookie)
|
||||
|
@ -3466,7 +3525,6 @@ HRESULT get_domdoc_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **document)
|
|||
doc->resolving = 0;
|
||||
doc->properties = properties_from_xmlDocPtr(xmldoc);
|
||||
doc->error = S_OK;
|
||||
doc->stream = NULL;
|
||||
doc->site = NULL;
|
||||
doc->safeopt = 0;
|
||||
doc->bsc = NULL;
|
||||
|
|
|
@ -304,13 +304,29 @@ static HRESULT WINAPI domelem_get_attributes(
|
|||
static HRESULT WINAPI domelem_insertBefore(
|
||||
IXMLDOMElement *iface,
|
||||
IXMLDOMNode* newNode, VARIANT refChild,
|
||||
IXMLDOMNode** outOldNode)
|
||||
IXMLDOMNode** old_node)
|
||||
{
|
||||
domelem *This = impl_from_IXMLDOMElement( iface );
|
||||
DOMNodeType type;
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("(%p)->(%p %s %p)\n", This, newNode, debugstr_variant(&refChild), outOldNode);
|
||||
TRACE("(%p)->(%p %s %p)\n", This, newNode, debugstr_variant(&refChild), old_node);
|
||||
|
||||
return node_insert_before(&This->node, newNode, &refChild, outOldNode);
|
||||
hr = IXMLDOMNode_get_nodeType(newNode, &type);
|
||||
if (hr != S_OK) return hr;
|
||||
|
||||
TRACE("new node type %d\n", type);
|
||||
switch (type)
|
||||
{
|
||||
case NODE_DOCUMENT:
|
||||
case NODE_DOCUMENT_TYPE:
|
||||
case NODE_ENTITY:
|
||||
case NODE_NOTATION:
|
||||
if (old_node) *old_node = NULL;
|
||||
return E_FAIL;
|
||||
default:
|
||||
return node_insert_before(&This->node, newNode, &refChild, old_node);
|
||||
}
|
||||
}
|
||||
|
||||
static HRESULT WINAPI domelem_replaceChild(
|
||||
|
@ -739,7 +755,7 @@ static HRESULT encode_base64(const BYTE *buf, int len, BSTR *ret)
|
|||
{
|
||||
static const char b64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
const BYTE *d = buf;
|
||||
int bytes, pad_bytes, div, i;
|
||||
int bytes, pad_bytes, div;
|
||||
DWORD needed;
|
||||
WCHAR *ptr;
|
||||
|
||||
|
@ -756,7 +772,6 @@ static HRESULT encode_base64(const BYTE *buf, int len, BSTR *ret)
|
|||
div = len / 3;
|
||||
|
||||
ptr = *ret;
|
||||
i = 0;
|
||||
while (div > 0)
|
||||
{
|
||||
/* first char is the first 6 bits of the first byte*/
|
||||
|
@ -769,7 +784,6 @@ static HRESULT encode_base64(const BYTE *buf, int len, BSTR *ret)
|
|||
*ptr++ = b64[ ((d[1] << 2) & 0x3c) | (d[2] >> 6 & 0x03)];
|
||||
/* fourth char is the remaining 6 bits of the third byte */
|
||||
*ptr++ = b64[ d[2] & 0x3f];
|
||||
i += 4;
|
||||
d += 3;
|
||||
div--;
|
||||
}
|
||||
|
@ -1232,8 +1246,7 @@ static HRESULT WINAPI domelem_setAttribute(
|
|||
domelem *This = impl_from_IXMLDOMElement( iface );
|
||||
xmlChar *xml_name, *xml_value, *local, *prefix;
|
||||
xmlNodePtr element;
|
||||
HRESULT hr;
|
||||
VARIANT var;
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
TRACE("(%p)->(%s %s)\n", This, debugstr_w(name), debugstr_variant(&value));
|
||||
|
||||
|
@ -1241,16 +1254,25 @@ static HRESULT WINAPI domelem_setAttribute(
|
|||
if ( !element )
|
||||
return E_FAIL;
|
||||
|
||||
VariantInit(&var);
|
||||
hr = VariantChangeType(&var, &value, 0, VT_BSTR);
|
||||
if(hr != S_OK)
|
||||
if (V_VT(&value) != VT_BSTR)
|
||||
{
|
||||
FIXME("VariantChangeType failed\n");
|
||||
return hr;
|
||||
VARIANT var;
|
||||
|
||||
VariantInit(&var);
|
||||
hr = VariantChangeType(&var, &value, 0, VT_BSTR);
|
||||
if (hr != S_OK)
|
||||
{
|
||||
FIXME("VariantChangeType failed\n");
|
||||
return hr;
|
||||
}
|
||||
|
||||
xml_value = xmlchar_from_wchar(V_BSTR(&var));
|
||||
VariantClear(&var);
|
||||
}
|
||||
else
|
||||
xml_value = xmlchar_from_wchar(V_BSTR(&value));
|
||||
|
||||
xml_name = xmlchar_from_wchar( name );
|
||||
xml_value = xmlchar_from_wchar( V_BSTR(&var) );
|
||||
|
||||
if ((local = xmlSplitQName2(xml_name, &prefix)))
|
||||
{
|
||||
|
@ -1273,7 +1295,6 @@ static HRESULT WINAPI domelem_setAttribute(
|
|||
|
||||
heap_free(xml_value);
|
||||
heap_free(xml_name);
|
||||
VariantClear(&var);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ static const struct clsid_version_t clsid_versions_table[] =
|
|||
|
||||
static MSXML_VERSION get_msxml_version(const GUID *clsid)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < sizeof(clsid_versions_table)/sizeof(struct clsid_version_t); i++)
|
||||
if (IsEqualGUID(clsid, clsid_versions_table[i].clsid))
|
||||
|
|
|
@ -85,8 +85,8 @@ typedef struct
|
|||
/* request */
|
||||
BINDVERB verb;
|
||||
BSTR custom;
|
||||
BSTR siteurl;
|
||||
BSTR url;
|
||||
IUri *uri;
|
||||
IUri *base_uri;
|
||||
BOOL async;
|
||||
struct list reqheaders;
|
||||
/* cached resulting custom request headers string length in WCHARs */
|
||||
|
@ -144,9 +144,17 @@ static inline serverhttp *impl_from_IServerXMLHTTPRequest(IServerXMLHTTPRequest
|
|||
static void httprequest_setreadystate(httprequest *This, READYSTATE state)
|
||||
{
|
||||
READYSTATE last = This->state;
|
||||
static const char* readystates[] = {
|
||||
"READYSTATE_UNINITIALIZED",
|
||||
"READYSTATE_LOADING",
|
||||
"READYSTATE_LOADED",
|
||||
"READYSTATE_INTERACTIVE",
|
||||
"READYSTATE_COMPLETE"};
|
||||
|
||||
This->state = state;
|
||||
|
||||
TRACE("state %s\n", readystates[state]);
|
||||
|
||||
if (This->sink && last != state)
|
||||
{
|
||||
DISPPARAMS params;
|
||||
|
@ -209,6 +217,7 @@ static void BindStatusCallback_Detach(BindStatusCallback *bsc)
|
|||
if (bsc)
|
||||
{
|
||||
if (bsc->binding) IBinding_Abort(bsc->binding);
|
||||
bsc->request->bsc = NULL;
|
||||
bsc->request = NULL;
|
||||
IBindStatusCallback_Release(&bsc->IBindStatusCallback_iface);
|
||||
}
|
||||
|
@ -343,7 +352,11 @@ static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *ifac
|
|||
}
|
||||
|
||||
if (hr == S_OK)
|
||||
{
|
||||
BindStatusCallback_Detach(This->request->bsc);
|
||||
This->request->bsc = This;
|
||||
httprequest_setreadystate(This->request, READYSTATE_COMPLETE);
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -688,23 +701,28 @@ static HRESULT BindStatusCallback_create(httprequest* This, BindStatusCallback *
|
|||
case VT_ARRAY|VT_UI1:
|
||||
{
|
||||
sa = V_ARRAY(body);
|
||||
if ((hr = SafeArrayAccessData(sa, (void **)&ptr)) != S_OK) return hr;
|
||||
if ((hr = SafeArrayAccessData(sa, (void **)&ptr)) != S_OK)
|
||||
{
|
||||
heap_free(bsc);
|
||||
return hr;
|
||||
}
|
||||
if ((hr = SafeArrayGetUBound(sa, 1, &size) != S_OK))
|
||||
{
|
||||
SafeArrayUnaccessData(sa);
|
||||
heap_free(bsc);
|
||||
return hr;
|
||||
}
|
||||
size++;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
FIXME("unsupported body data type %d\n", V_VT(body));
|
||||
/* fall through */
|
||||
case VT_EMPTY:
|
||||
case VT_ERROR:
|
||||
ptr = NULL;
|
||||
size = 0;
|
||||
break;
|
||||
default:
|
||||
FIXME("unsupported body data type %d\n", V_VT(body));
|
||||
break;
|
||||
}
|
||||
|
||||
bsc->body = GlobalAlloc(GMEM_FIXED, size);
|
||||
|
@ -734,7 +752,7 @@ static HRESULT BindStatusCallback_create(httprequest* This, BindStatusCallback *
|
|||
{
|
||||
IMoniker *moniker;
|
||||
|
||||
hr = CreateURLMoniker(NULL, This->url, &moniker);
|
||||
hr = CreateURLMonikerEx2(NULL, This->uri, &moniker, URL_MK_UNIFORM);
|
||||
if (hr == S_OK)
|
||||
{
|
||||
IStream *stream;
|
||||
|
@ -756,6 +774,53 @@ static HRESULT BindStatusCallback_create(httprequest* This, BindStatusCallback *
|
|||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT verify_uri(httprequest *This, IUri *uri)
|
||||
{
|
||||
DWORD scheme, base_scheme;
|
||||
BSTR host, base_host;
|
||||
HRESULT hr;
|
||||
|
||||
if(!(This->safeopt & INTERFACESAFE_FOR_UNTRUSTED_DATA))
|
||||
return S_OK;
|
||||
|
||||
if(!This->base_uri)
|
||||
return E_ACCESSDENIED;
|
||||
|
||||
hr = IUri_GetScheme(uri, &scheme);
|
||||
if(FAILED(hr))
|
||||
return hr;
|
||||
|
||||
hr = IUri_GetScheme(This->base_uri, &base_scheme);
|
||||
if(FAILED(hr))
|
||||
return hr;
|
||||
|
||||
if(scheme != base_scheme) {
|
||||
WARN("Schemes don't match\n");
|
||||
return E_ACCESSDENIED;
|
||||
}
|
||||
|
||||
if(scheme == INTERNET_SCHEME_UNKNOWN) {
|
||||
FIXME("Unknown scheme\n");
|
||||
return E_ACCESSDENIED;
|
||||
}
|
||||
|
||||
hr = IUri_GetHost(uri, &host);
|
||||
if(FAILED(hr))
|
||||
return hr;
|
||||
|
||||
hr = IUri_GetHost(This->base_uri, &base_host);
|
||||
if(SUCCEEDED(hr)) {
|
||||
if(strcmpiW(host, base_host)) {
|
||||
WARN("Hosts don't match\n");
|
||||
hr = E_ACCESSDENIED;
|
||||
}
|
||||
SysFreeString(base_host);
|
||||
}
|
||||
|
||||
SysFreeString(host);
|
||||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT httprequest_open(httprequest *This, BSTR method, BSTR url,
|
||||
VARIANT async, VARIANT user, VARIANT password)
|
||||
{
|
||||
|
@ -765,15 +830,20 @@ static HRESULT httprequest_open(httprequest *This, BSTR method, BSTR url,
|
|||
static const WCHAR MethodDeleteW[] = {'D','E','L','E','T','E',0};
|
||||
static const WCHAR MethodPropFindW[] = {'P','R','O','P','F','I','N','D',0};
|
||||
VARIANT str, is_async;
|
||||
IUri *uri;
|
||||
HRESULT hr;
|
||||
|
||||
if (!method || !url) return E_INVALIDARG;
|
||||
|
||||
/* free previously set data */
|
||||
SysFreeString(This->url);
|
||||
if(This->uri) {
|
||||
IUri_Release(This->uri);
|
||||
This->uri = NULL;
|
||||
}
|
||||
|
||||
SysFreeString(This->user);
|
||||
SysFreeString(This->password);
|
||||
This->url = This->user = This->password = NULL;
|
||||
This->user = This->password = NULL;
|
||||
|
||||
if (!strcmpiW(method, MethodGetW))
|
||||
{
|
||||
|
@ -800,22 +870,22 @@ static HRESULT httprequest_open(httprequest *This, BSTR method, BSTR url,
|
|||
return E_FAIL;
|
||||
}
|
||||
|
||||
/* try to combine with site url */
|
||||
if (This->siteurl && PathIsRelativeW(url))
|
||||
{
|
||||
DWORD len = INTERNET_MAX_URL_LENGTH;
|
||||
WCHAR *fullW = heap_alloc(len*sizeof(WCHAR));
|
||||
|
||||
hr = UrlCombineW(This->siteurl, url, fullW, &len, 0);
|
||||
if (hr == S_OK)
|
||||
{
|
||||
TRACE("combined url %s\n", debugstr_w(fullW));
|
||||
This->url = SysAllocString(fullW);
|
||||
}
|
||||
heap_free(fullW);
|
||||
}
|
||||
if(This->base_uri)
|
||||
hr = CoInternetCombineUrlEx(This->base_uri, url, 0, &uri, 0);
|
||||
else
|
||||
This->url = SysAllocString(url);
|
||||
hr = CreateUri(url, 0, 0, &uri);
|
||||
if(FAILED(hr)) {
|
||||
WARN("Could not create IUri object: %08x\n", hr);
|
||||
return hr;
|
||||
}
|
||||
|
||||
hr = verify_uri(This, uri);
|
||||
if(FAILED(hr)) {
|
||||
IUri_Release(uri);
|
||||
return hr;
|
||||
}
|
||||
|
||||
This->uri = uri;
|
||||
|
||||
VariantInit(&is_async);
|
||||
hr = VariantChangeType(&is_async, &async, 0, VT_BOOL);
|
||||
|
@ -881,7 +951,8 @@ static HRESULT httprequest_getResponseHeader(httprequest *This, BSTR header, BST
|
|||
{
|
||||
struct httpheader *entry;
|
||||
|
||||
if (!header || !value) return E_INVALIDARG;
|
||||
if (!header) return E_INVALIDARG;
|
||||
if (!value) return E_POINTER;
|
||||
|
||||
if (This->raw_respheaders && list_empty(&This->respheaders))
|
||||
{
|
||||
|
@ -915,7 +986,7 @@ static HRESULT httprequest_getResponseHeader(httprequest *This, BSTR header, BST
|
|||
|
||||
static HRESULT httprequest_getAllResponseHeaders(httprequest *This, BSTR *respheaders)
|
||||
{
|
||||
if (!respheaders) return E_INVALIDARG;
|
||||
if (!respheaders) return E_POINTER;
|
||||
|
||||
*respheaders = SysAllocString(This->raw_respheaders);
|
||||
|
||||
|
@ -930,10 +1001,9 @@ static HRESULT httprequest_send(httprequest *This, VARIANT body)
|
|||
if (This->state != READYSTATE_LOADING) return E_FAIL;
|
||||
|
||||
hr = BindStatusCallback_create(This, &bsc, &body);
|
||||
if (FAILED(hr)) return hr;
|
||||
|
||||
BindStatusCallback_Detach(This->bsc);
|
||||
This->bsc = bsc;
|
||||
if (FAILED(hr))
|
||||
/* success path to detach it is OnStopBinding call */
|
||||
BindStatusCallback_Detach(bsc);
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
@ -941,7 +1011,6 @@ static HRESULT httprequest_send(httprequest *This, VARIANT body)
|
|||
static HRESULT httprequest_abort(httprequest *This)
|
||||
{
|
||||
BindStatusCallback_Detach(This->bsc);
|
||||
This->bsc = NULL;
|
||||
|
||||
httprequest_setreadystate(This, READYSTATE_UNINITIALIZED);
|
||||
|
||||
|
@ -950,17 +1019,16 @@ static HRESULT httprequest_abort(httprequest *This)
|
|||
|
||||
static HRESULT httprequest_get_status(httprequest *This, LONG *status)
|
||||
{
|
||||
if (!status) return E_INVALIDARG;
|
||||
if (This->state != READYSTATE_COMPLETE) return E_FAIL;
|
||||
if (!status) return E_POINTER;
|
||||
|
||||
*status = This->status;
|
||||
|
||||
return S_OK;
|
||||
return This->state == READYSTATE_COMPLETE ? S_OK : E_FAIL;
|
||||
}
|
||||
|
||||
static HRESULT httprequest_get_statusText(httprequest *This, BSTR *status)
|
||||
{
|
||||
if (!status) return E_INVALIDARG;
|
||||
if (!status) return E_POINTER;
|
||||
if (This->state != READYSTATE_COMPLETE) return E_FAIL;
|
||||
|
||||
*status = SysAllocString(This->status_text);
|
||||
|
@ -973,7 +1041,7 @@ static HRESULT httprequest_get_responseText(httprequest *This, BSTR *body)
|
|||
HGLOBAL hglobal;
|
||||
HRESULT hr;
|
||||
|
||||
if (!body) return E_INVALIDARG;
|
||||
if (!body) return E_POINTER;
|
||||
if (This->state != READYSTATE_COMPLETE) return E_FAIL;
|
||||
|
||||
hr = GetHGlobalFromStream(This->bsc->stream, &hglobal);
|
||||
|
@ -1119,7 +1187,7 @@ static HRESULT httprequest_get_responseStream(httprequest *This, VARIANT *body)
|
|||
|
||||
static HRESULT httprequest_get_readyState(httprequest *This, LONG *state)
|
||||
{
|
||||
if (!state) return E_INVALIDARG;
|
||||
if (!state) return E_POINTER;
|
||||
|
||||
*state = This->state;
|
||||
return S_OK;
|
||||
|
@ -1139,10 +1207,12 @@ static void httprequest_release(httprequest *This)
|
|||
|
||||
if (This->site)
|
||||
IUnknown_Release( This->site );
|
||||
if (This->uri)
|
||||
IUri_Release(This->uri);
|
||||
if (This->base_uri)
|
||||
IUri_Release(This->base_uri);
|
||||
|
||||
SysFreeString(This->custom);
|
||||
SysFreeString(This->siteurl);
|
||||
SysFreeString(This->url);
|
||||
SysFreeString(This->user);
|
||||
SysFreeString(This->password);
|
||||
|
||||
|
@ -1442,37 +1512,55 @@ static HRESULT WINAPI httprequest_ObjectWithSite_GetSite( IObjectWithSite *iface
|
|||
return IUnknown_QueryInterface( This->site, iid, ppvSite );
|
||||
}
|
||||
|
||||
static void get_base_uri(httprequest *This)
|
||||
{
|
||||
IServiceProvider *provider;
|
||||
IHTMLDocument2 *doc;
|
||||
IUri *uri;
|
||||
BSTR url;
|
||||
HRESULT hr;
|
||||
|
||||
hr = IUnknown_QueryInterface(This->site, &IID_IServiceProvider, (void**)&provider);
|
||||
if(FAILED(hr))
|
||||
return;
|
||||
|
||||
hr = IServiceProvider_QueryService(provider, &SID_SContainerDispatch, &IID_IHTMLDocument2, (void**)&doc);
|
||||
IServiceProvider_Release(provider);
|
||||
if(FAILED(hr))
|
||||
return;
|
||||
|
||||
hr = IHTMLDocument2_get_URL(doc, &url);
|
||||
IHTMLDocument2_Release(doc);
|
||||
if(FAILED(hr) || !url || !*url)
|
||||
return;
|
||||
|
||||
TRACE("host url %s\n", debugstr_w(url));
|
||||
|
||||
hr = CreateUri(url, 0, 0, &uri);
|
||||
SysFreeString(url);
|
||||
if(FAILED(hr))
|
||||
return;
|
||||
|
||||
This->base_uri = uri;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI httprequest_ObjectWithSite_SetSite( IObjectWithSite *iface, IUnknown *punk )
|
||||
{
|
||||
httprequest *This = impl_from_IObjectWithSite(iface);
|
||||
IServiceProvider *provider;
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("(%p)->(%p)\n", iface, punk);
|
||||
|
||||
if (punk)
|
||||
IUnknown_AddRef( punk );
|
||||
TRACE("(%p)->(%p)\n", This, punk);
|
||||
|
||||
if(This->site)
|
||||
IUnknown_Release( This->site );
|
||||
if(This->base_uri)
|
||||
IUri_Release(This->base_uri);
|
||||
|
||||
This->site = punk;
|
||||
|
||||
hr = IUnknown_QueryInterface(This->site, &IID_IServiceProvider, (void**)&provider);
|
||||
if (hr == S_OK)
|
||||
if (punk)
|
||||
{
|
||||
IHTMLDocument2 *doc;
|
||||
|
||||
hr = IServiceProvider_QueryService(provider, &SID_SContainerDispatch, &IID_IHTMLDocument2, (void**)&doc);
|
||||
if (hr == S_OK)
|
||||
{
|
||||
SysFreeString(This->siteurl);
|
||||
|
||||
hr = IHTMLDocument2_get_URL(doc, &This->siteurl);
|
||||
IHTMLDocument2_Release(doc);
|
||||
TRACE("host url %s, 0x%08x\n", debugstr_w(This->siteurl), hr);
|
||||
}
|
||||
IServiceProvider_Release(provider);
|
||||
IUnknown_AddRef( punk );
|
||||
get_base_uri(This);
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
@ -1826,7 +1914,8 @@ static void init_httprequest(httprequest *req)
|
|||
req->async = FALSE;
|
||||
req->verb = -1;
|
||||
req->custom = NULL;
|
||||
req->url = req->siteurl = req->user = req->password = NULL;
|
||||
req->uri = req->base_uri = NULL;
|
||||
req->user = req->password = NULL;
|
||||
|
||||
req->state = READYSTATE_UNINITIALIZED;
|
||||
req->sink = NULL;
|
||||
|
|
|
@ -276,6 +276,8 @@ const char *debugstr_variant(const VARIANT *v)
|
|||
return wine_dbg_sprintf("{VT_I2: %d}", V_I2(v));
|
||||
case VT_I4:
|
||||
return wine_dbg_sprintf("{VT_I4: %d}", V_I4(v));
|
||||
case VT_INT:
|
||||
return wine_dbg_sprintf("{VT_INT: %d}", V_INT(v));
|
||||
case VT_R8:
|
||||
return wine_dbg_sprintf("{VT_R8: %lf}", V_R8(v));
|
||||
case VT_BSTR:
|
||||
|
|
|
@ -194,7 +194,8 @@ static inline LPWSTR heap_strdupW(LPCWSTR str)
|
|||
|
||||
size = (strlenW(str)+1)*sizeof(WCHAR);
|
||||
ret = heap_alloc(size);
|
||||
memcpy(ret, str, size);
|
||||
if(ret)
|
||||
memcpy(ret, str, size);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -291,6 +292,9 @@ extern xmlChar *xmlChar_from_wchar( LPCWSTR str ) DECLSPEC_HIDDEN;
|
|||
extern void xmldoc_init( xmlDocPtr doc, MSXML_VERSION version ) DECLSPEC_HIDDEN;
|
||||
extern LONG xmldoc_add_ref( xmlDocPtr doc ) DECLSPEC_HIDDEN;
|
||||
extern LONG xmldoc_release( xmlDocPtr doc ) DECLSPEC_HIDDEN;
|
||||
extern LONG xmldoc_add_refs( xmlDocPtr doc, LONG refs ) DECLSPEC_HIDDEN;
|
||||
extern LONG xmldoc_release_refs ( xmlDocPtr doc, LONG refs ) DECLSPEC_HIDDEN;
|
||||
extern int xmlnode_get_inst_cnt( xmlnode *node ) DECLSPEC_HIDDEN;
|
||||
extern HRESULT xmldoc_add_orphan( xmlDocPtr doc, xmlNodePtr node ) DECLSPEC_HIDDEN;
|
||||
extern HRESULT xmldoc_remove_orphan( xmlDocPtr doc, xmlNodePtr node ) DECLSPEC_HIDDEN;
|
||||
extern void xmldoc_link_xmldecl(xmlDocPtr doc, xmlNodePtr node) DECLSPEC_HIDDEN;
|
||||
|
@ -404,6 +408,21 @@ static inline xmlChar *xmlchar_from_wchar( const WCHAR *str )
|
|||
return xmlchar_from_wcharn(str, -1);
|
||||
}
|
||||
|
||||
static inline xmlChar *heap_strdupxmlChar(const xmlChar *str)
|
||||
{
|
||||
xmlChar *ret = NULL;
|
||||
|
||||
if(str) {
|
||||
DWORD size;
|
||||
|
||||
size = (xmlStrlen(str)+1)*sizeof(xmlChar);
|
||||
ret = heap_alloc(size);
|
||||
memcpy(ret, str, size);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static inline HRESULT return_bstr(const WCHAR *value, BSTR *p)
|
||||
|
|
|
@ -291,7 +291,9 @@ static HRESULT alloc_output_buffer(xml_encoding encoding, output_buffer **buffer
|
|||
return hr;
|
||||
}
|
||||
|
||||
if (ret->code_page == CP_UTF8) {
|
||||
/* currently we always create a default output buffer that is UTF-16 only,
|
||||
but it's possible to allocate with specific encoding too */
|
||||
if (encoding != XmlEncoding_UTF16) {
|
||||
hr = init_encoded_buffer(&ret->encoded);
|
||||
if (hr != S_OK) {
|
||||
free_encoded_buffer(&ret->utf16);
|
||||
|
|
|
@ -285,36 +285,48 @@ static HRESULT node_set_content_escaped(xmlnode *This, LPCWSTR value)
|
|||
|
||||
HRESULT node_put_value(xmlnode *This, VARIANT *value)
|
||||
{
|
||||
VARIANT string_value;
|
||||
HRESULT hr;
|
||||
|
||||
VariantInit(&string_value);
|
||||
hr = VariantChangeType(&string_value, value, 0, VT_BSTR);
|
||||
if(FAILED(hr)) {
|
||||
WARN("Couldn't convert to VT_BSTR\n");
|
||||
return hr;
|
||||
}
|
||||
if (V_VT(value) != VT_BSTR)
|
||||
{
|
||||
VARIANT string_value;
|
||||
|
||||
hr = node_set_content(This, V_BSTR(&string_value));
|
||||
VariantClear(&string_value);
|
||||
VariantInit(&string_value);
|
||||
hr = VariantChangeType(&string_value, value, 0, VT_BSTR);
|
||||
if(FAILED(hr)) {
|
||||
WARN("Couldn't convert to VT_BSTR\n");
|
||||
return hr;
|
||||
}
|
||||
|
||||
hr = node_set_content(This, V_BSTR(&string_value));
|
||||
VariantClear(&string_value);
|
||||
}
|
||||
else
|
||||
hr = node_set_content(This, V_BSTR(value));
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
HRESULT node_put_value_escaped(xmlnode *This, VARIANT *value)
|
||||
{
|
||||
VARIANT string_value;
|
||||
HRESULT hr;
|
||||
|
||||
VariantInit(&string_value);
|
||||
hr = VariantChangeType(&string_value, value, 0, VT_BSTR);
|
||||
if(FAILED(hr)) {
|
||||
WARN("Couldn't convert to VT_BSTR\n");
|
||||
return hr;
|
||||
}
|
||||
if (V_VT(value) != VT_BSTR)
|
||||
{
|
||||
VARIANT string_value;
|
||||
|
||||
hr = node_set_content_escaped(This, V_BSTR(&string_value));
|
||||
VariantClear(&string_value);
|
||||
VariantInit(&string_value);
|
||||
hr = VariantChangeType(&string_value, value, 0, VT_BSTR);
|
||||
if(FAILED(hr)) {
|
||||
WARN("Couldn't convert to VT_BSTR\n");
|
||||
return hr;
|
||||
}
|
||||
|
||||
hr = node_set_content_escaped(This, V_BSTR(&string_value));
|
||||
VariantClear(&string_value);
|
||||
}
|
||||
else
|
||||
hr = node_set_content_escaped(This, V_BSTR(value));
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
@ -377,11 +389,45 @@ HRESULT node_get_next_sibling(xmlnode *This, IXMLDOMNode **ret)
|
|||
return get_node(This, "next", This->node->next, ret);
|
||||
}
|
||||
|
||||
static int node_get_inst_cnt(xmlNodePtr node)
|
||||
{
|
||||
int ret = *(LONG *)&node->_private;
|
||||
xmlNodePtr child;
|
||||
|
||||
/* add attribute counts */
|
||||
if (node->type == XML_ELEMENT_NODE)
|
||||
{
|
||||
xmlAttrPtr prop = node->properties;
|
||||
|
||||
while (prop)
|
||||
{
|
||||
ret += node_get_inst_cnt((xmlNodePtr)prop);
|
||||
prop = prop->next;
|
||||
}
|
||||
}
|
||||
|
||||
/* add children counts */
|
||||
child = node->children;
|
||||
while (child)
|
||||
{
|
||||
ret += node_get_inst_cnt(child);
|
||||
child = child->next;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int xmlnode_get_inst_cnt(xmlnode *node)
|
||||
{
|
||||
return node_get_inst_cnt(node->node);
|
||||
}
|
||||
|
||||
HRESULT node_insert_before(xmlnode *This, IXMLDOMNode *new_child, const VARIANT *ref_child,
|
||||
IXMLDOMNode **ret)
|
||||
{
|
||||
IXMLDOMNode *before = NULL;
|
||||
xmlnode *node_obj;
|
||||
int refcount = 0;
|
||||
xmlDocPtr doc;
|
||||
HRESULT hr;
|
||||
|
||||
|
@ -417,6 +463,8 @@ HRESULT node_insert_before(xmlnode *This, IXMLDOMNode *new_child, const VARIANT
|
|||
if(xmldoc_remove_orphan(node_obj->node->doc, node_obj->node) != S_OK)
|
||||
WARN("%p is not an orphan of %p\n", node_obj->node, node_obj->node->doc);
|
||||
|
||||
refcount = xmlnode_get_inst_cnt(node_obj);
|
||||
|
||||
if(before)
|
||||
{
|
||||
xmlnode *before_node_obj = get_node_obj(before);
|
||||
|
@ -429,10 +477,16 @@ HRESULT node_insert_before(xmlnode *This, IXMLDOMNode *new_child, const VARIANT
|
|||
hr = IXMLDOMNode_removeChild(node_obj->parent, node_obj->iface, NULL);
|
||||
if (hr == S_OK) xmldoc_remove_orphan(node_obj->node->doc, node_obj->node);
|
||||
}
|
||||
|
||||
doc = node_obj->node->doc;
|
||||
xmldoc_add_ref(before_node_obj->node->doc);
|
||||
|
||||
/* refs count including subtree */
|
||||
if (doc != before_node_obj->node->doc)
|
||||
refcount = xmlnode_get_inst_cnt(node_obj);
|
||||
|
||||
if (refcount) xmldoc_add_refs(before_node_obj->node->doc, refcount);
|
||||
xmlAddPrevSibling(before_node_obj->node, node_obj->node);
|
||||
xmldoc_release(doc);
|
||||
if (refcount) xmldoc_release_refs(doc, refcount);
|
||||
node_obj->parent = This->parent;
|
||||
}
|
||||
else
|
||||
|
@ -444,11 +498,15 @@ HRESULT node_insert_before(xmlnode *This, IXMLDOMNode *new_child, const VARIANT
|
|||
if (hr == S_OK) xmldoc_remove_orphan(node_obj->node->doc, node_obj->node);
|
||||
}
|
||||
doc = node_obj->node->doc;
|
||||
xmldoc_add_ref(This->node->doc);
|
||||
|
||||
if (doc != This->node->doc)
|
||||
refcount = xmlnode_get_inst_cnt(node_obj);
|
||||
|
||||
if (refcount) xmldoc_add_refs(This->node->doc, refcount);
|
||||
/* xmlAddChild doesn't unlink node from previous parent */
|
||||
xmlUnlinkNode(node_obj->node);
|
||||
xmlAddChild(This->node, node_obj->node);
|
||||
xmldoc_release(doc);
|
||||
if (refcount) xmldoc_release_refs(doc, refcount);
|
||||
node_obj->parent = This->iface;
|
||||
}
|
||||
|
||||
|
@ -468,6 +526,7 @@ HRESULT node_replace_child(xmlnode *This, IXMLDOMNode *newChild, IXMLDOMNode *ol
|
|||
xmlnode *old_child, *new_child;
|
||||
xmlDocPtr leaving_doc;
|
||||
xmlNode *my_ancestor;
|
||||
int refcount = 0;
|
||||
|
||||
/* Do not believe any documentation telling that newChild == NULL
|
||||
means removal. It does certainly *not* apply to msxml3! */
|
||||
|
@ -505,9 +564,13 @@ HRESULT node_replace_child(xmlnode *This, IXMLDOMNode *newChild, IXMLDOMNode *ol
|
|||
WARN("%p is not an orphan of %p\n", new_child->node, new_child->node->doc);
|
||||
|
||||
leaving_doc = new_child->node->doc;
|
||||
xmldoc_add_ref(old_child->node->doc);
|
||||
|
||||
if (leaving_doc != old_child->node->doc)
|
||||
refcount = xmlnode_get_inst_cnt(new_child);
|
||||
|
||||
if (refcount) xmldoc_add_refs(old_child->node->doc, refcount);
|
||||
xmlReplaceNode(old_child->node, new_child->node);
|
||||
xmldoc_release(leaving_doc);
|
||||
if (refcount) xmldoc_release_refs(leaving_doc, refcount);
|
||||
new_child->parent = old_child->parent;
|
||||
old_child->parent = NULL;
|
||||
|
||||
|
@ -598,7 +661,7 @@ HRESULT node_clone(xmlnode *This, VARIANT_BOOL deep, IXMLDOMNode **cloneNode)
|
|||
clone = xmlCopyNode(This->node, deep ? 1 : 2);
|
||||
if (clone)
|
||||
{
|
||||
clone->doc = This->node->doc;
|
||||
xmlSetTreeDoc(clone, This->node->doc);
|
||||
xmldoc_add_orphan(clone->doc, clone);
|
||||
|
||||
node = create_node(clone);
|
||||
|
@ -836,6 +899,53 @@ HRESULT node_get_xml(xmlnode *This, BOOL ensure_eol, BSTR *ret)
|
|||
return *ret ? S_OK : E_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
static void htmldtd_dumpcontent(xmlOutputBufferPtr buf, xmlDocPtr doc)
|
||||
{
|
||||
xmlDtdPtr cur = doc->intSubset;
|
||||
|
||||
xmlOutputBufferWriteString(buf, "<!DOCTYPE ");
|
||||
xmlOutputBufferWriteString(buf, (const char *)cur->name);
|
||||
if (cur->ExternalID)
|
||||
{
|
||||
xmlOutputBufferWriteString(buf, " PUBLIC ");
|
||||
xmlBufferWriteQuotedString(buf->buffer, cur->ExternalID);
|
||||
if (cur->SystemID)
|
||||
{
|
||||
xmlOutputBufferWriteString(buf, " ");
|
||||
xmlBufferWriteQuotedString(buf->buffer, cur->SystemID);
|
||||
}
|
||||
}
|
||||
else if (cur->SystemID)
|
||||
{
|
||||
xmlOutputBufferWriteString(buf, " SYSTEM ");
|
||||
xmlBufferWriteQuotedString(buf->buffer, cur->SystemID);
|
||||
}
|
||||
xmlOutputBufferWriteString(buf, ">\n");
|
||||
}
|
||||
|
||||
static void htmldoc_dumpcontent(xmlOutputBufferPtr buf, xmlDocPtr doc)
|
||||
{
|
||||
xmlElementType type;
|
||||
|
||||
/* force HTML output */
|
||||
type = doc->type;
|
||||
doc->type = XML_HTML_DOCUMENT_NODE;
|
||||
if (doc->intSubset)
|
||||
htmldtd_dumpcontent(buf, doc);
|
||||
if (doc->children)
|
||||
{
|
||||
xmlNodePtr cur = doc->children;
|
||||
|
||||
while (cur)
|
||||
{
|
||||
htmlNodeDumpFormatOutput(buf, doc, cur, NULL, 1);
|
||||
cur = cur->next;
|
||||
}
|
||||
|
||||
}
|
||||
doc->type = type;
|
||||
}
|
||||
|
||||
HRESULT node_transform_node(const xmlnode *This, IXMLDOMNode *stylesheet, BSTR *p)
|
||||
{
|
||||
#ifdef SONAME_LIBXSLT
|
||||
|
@ -863,7 +973,7 @@ HRESULT node_transform_node(const xmlnode *This, IXMLDOMNode *stylesheet, BSTR *
|
|||
xmlOutputBufferPtr output = xmlAllocOutputBuffer(NULL);
|
||||
if (output)
|
||||
{
|
||||
htmlDocContentDumpOutput(output, result->doc, NULL);
|
||||
htmldoc_dumpcontent(output, result->doc);
|
||||
content = xmlBufferContent(output->buffer);
|
||||
*p = bstr_from_xmlChar(content);
|
||||
xmlOutputBufferClose(output);
|
||||
|
@ -973,17 +1083,36 @@ HRESULT node_get_base_name(xmlnode *This, BSTR *name)
|
|||
return S_OK;
|
||||
}
|
||||
|
||||
/* _private field holds a number of COM instances spawned from this libxml2 node */
|
||||
static void xmlnode_add_ref(xmlNodePtr node)
|
||||
{
|
||||
if (node->type == XML_DOCUMENT_NODE) return;
|
||||
InterlockedIncrement((LONG*)&node->_private);
|
||||
}
|
||||
|
||||
static void xmlnode_release(xmlNodePtr node)
|
||||
{
|
||||
if (node->type == XML_DOCUMENT_NODE) return;
|
||||
InterlockedDecrement((LONG*)&node->_private);
|
||||
}
|
||||
|
||||
void destroy_xmlnode(xmlnode *This)
|
||||
{
|
||||
if(This->node)
|
||||
{
|
||||
xmlnode_release(This->node);
|
||||
xmldoc_release(This->node->doc);
|
||||
}
|
||||
release_dispex(&This->dispex);
|
||||
}
|
||||
|
||||
void init_xmlnode(xmlnode *This, xmlNodePtr node, IXMLDOMNode *node_iface, dispex_static_data_t *dispex_data)
|
||||
{
|
||||
if(node)
|
||||
xmldoc_add_ref( node->doc );
|
||||
{
|
||||
xmlnode_add_ref(node);
|
||||
xmldoc_add_ref(node->doc);
|
||||
}
|
||||
|
||||
This->node = node;
|
||||
This->iface = node_iface;
|
||||
|
|
|
@ -341,28 +341,62 @@ static HRESULT xmlnodelist_invoke(IUnknown *iface, DISPID id, LCID lcid, WORD fl
|
|||
|
||||
TRACE("(%p)->(%x %x %x %p %p %p)\n", This, id, lcid, flags, params, res, ei);
|
||||
|
||||
V_VT(res) = VT_DISPATCH;
|
||||
V_DISPATCH(res) = NULL;
|
||||
|
||||
if (id < DISPID_DOM_COLLECTION_BASE || id > DISPID_DOM_COLLECTION_MAX)
|
||||
return DISP_E_UNKNOWNNAME;
|
||||
|
||||
switch(flags)
|
||||
if (id >= DISPID_DOM_COLLECTION_BASE && id <= DISPID_DOM_COLLECTION_MAX)
|
||||
{
|
||||
case INVOKE_PROPERTYGET:
|
||||
switch(flags)
|
||||
{
|
||||
IXMLDOMNode *disp = NULL;
|
||||
case DISPATCH_PROPERTYGET:
|
||||
{
|
||||
IXMLDOMNode *disp = NULL;
|
||||
|
||||
IXMLDOMNodeList_get_item(&This->IXMLDOMNodeList_iface, id - DISPID_DOM_COLLECTION_BASE, &disp);
|
||||
V_DISPATCH(res) = (IDispatch*)disp;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
FIXME("unimplemented flags %x\n", flags);
|
||||
break;
|
||||
V_VT(res) = VT_DISPATCH;
|
||||
IXMLDOMNodeList_get_item(&This->IXMLDOMNodeList_iface, id - DISPID_DOM_COLLECTION_BASE, &disp);
|
||||
V_DISPATCH(res) = (IDispatch*)disp;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
FIXME("unimplemented flags %x\n", flags);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (id == DISPID_VALUE)
|
||||
{
|
||||
switch(flags)
|
||||
{
|
||||
case DISPATCH_METHOD|DISPATCH_PROPERTYGET:
|
||||
case DISPATCH_PROPERTYGET:
|
||||
case DISPATCH_METHOD:
|
||||
{
|
||||
IXMLDOMNode *item;
|
||||
VARIANT index;
|
||||
HRESULT hr;
|
||||
|
||||
if (params->cArgs - params->cNamedArgs != 1) return DISP_E_BADPARAMCOUNT;
|
||||
|
||||
VariantInit(&index);
|
||||
hr = VariantChangeType(&index, params->rgvarg, 0, VT_I4);
|
||||
if(FAILED(hr))
|
||||
{
|
||||
FIXME("failed to convert arg, %s\n", debugstr_variant(params->rgvarg));
|
||||
return hr;
|
||||
}
|
||||
|
||||
IXMLDOMNodeList_get_item(&This->IXMLDOMNodeList_iface, V_I4(&index), &item);
|
||||
V_VT(res) = VT_DISPATCH;
|
||||
V_DISPATCH(res) = (IDispatch*)item;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
FIXME("DISPID_VALUE: unimplemented flags %x\n", flags);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
return DISP_E_UNKNOWNNAME;
|
||||
|
||||
TRACE("ret %p\n", V_DISPATCH(res));
|
||||
|
||||
|
|
|
@ -171,12 +171,13 @@ enum saxhandler_type
|
|||
SAXContentHandler = 0,
|
||||
SAXDeclHandler,
|
||||
SAXDTDHandler,
|
||||
SAXEntityResolver,
|
||||
SAXErrorHandler,
|
||||
SAXLexicalHandler,
|
||||
SAXHandler_Last
|
||||
};
|
||||
|
||||
struct saxhandler_iface
|
||||
struct saxanyhandler_iface
|
||||
{
|
||||
IUnknown *handler;
|
||||
IUnknown *vbhandler;
|
||||
|
@ -200,6 +201,23 @@ struct saxlexicalhandler_iface
|
|||
IVBSAXLexicalHandler *vbhandler;
|
||||
};
|
||||
|
||||
struct saxentityresolver_iface
|
||||
{
|
||||
ISAXEntityResolver *handler;
|
||||
IVBSAXEntityResolver *vbhandler;
|
||||
};
|
||||
|
||||
struct saxhandler_iface
|
||||
{
|
||||
union {
|
||||
struct saxcontenthandler_iface content;
|
||||
struct saxentityresolver_iface entityresolver;
|
||||
struct saxerrorhandler_iface error;
|
||||
struct saxlexicalhandler_iface lexical;
|
||||
struct saxanyhandler_iface anyhandler;
|
||||
} u;
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DispatchEx dispex;
|
||||
|
@ -218,7 +236,7 @@ typedef struct
|
|||
|
||||
static HRESULT saxreader_put_handler(saxreader *reader, enum saxhandler_type type, void *ptr, BOOL vb)
|
||||
{
|
||||
struct saxhandler_iface *iface = &reader->saxhandlers[type];
|
||||
struct saxanyhandler_iface *iface = &reader->saxhandlers[type].u.anyhandler;
|
||||
IUnknown *unk = (IUnknown*)ptr;
|
||||
|
||||
if (unk)
|
||||
|
@ -237,7 +255,7 @@ static HRESULT saxreader_put_handler(saxreader *reader, enum saxhandler_type typ
|
|||
|
||||
static HRESULT saxreader_get_handler(const saxreader *reader, enum saxhandler_type type, BOOL vb, void **ret)
|
||||
{
|
||||
const struct saxhandler_iface *iface = &reader->saxhandlers[type];
|
||||
const struct saxanyhandler_iface *iface = &reader->saxhandlers[type].u.anyhandler;
|
||||
|
||||
if (!ret) return E_POINTER;
|
||||
|
||||
|
@ -256,17 +274,17 @@ static HRESULT saxreader_get_handler(const saxreader *reader, enum saxhandler_ty
|
|||
|
||||
static struct saxcontenthandler_iface *saxreader_get_contenthandler(saxreader *reader)
|
||||
{
|
||||
return (struct saxcontenthandler_iface*)&reader->saxhandlers[SAXContentHandler];
|
||||
return &reader->saxhandlers[SAXContentHandler].u.content;
|
||||
}
|
||||
|
||||
static struct saxerrorhandler_iface *saxreader_get_errorhandler(saxreader *reader)
|
||||
{
|
||||
return (struct saxerrorhandler_iface*)&reader->saxhandlers[SAXErrorHandler];
|
||||
return &reader->saxhandlers[SAXErrorHandler].u.error;
|
||||
}
|
||||
|
||||
static struct saxlexicalhandler_iface *saxreader_get_lexicalhandler(saxreader *reader)
|
||||
{
|
||||
return (struct saxlexicalhandler_iface*)&reader->saxhandlers[SAXLexicalHandler];
|
||||
return &reader->saxhandlers[SAXLexicalHandler].u.lexical;
|
||||
}
|
||||
|
||||
typedef struct
|
||||
|
@ -279,8 +297,8 @@ typedef struct
|
|||
saxreader *saxreader;
|
||||
HRESULT ret;
|
||||
xmlParserCtxtPtr pParserCtxt;
|
||||
WCHAR *publicId;
|
||||
WCHAR *systemId;
|
||||
BSTR publicId;
|
||||
BSTR systemId;
|
||||
int line;
|
||||
int column;
|
||||
BOOL vbInterface;
|
||||
|
@ -330,8 +348,23 @@ static inline saxlocator *impl_from_ISAXAttributes( ISAXAttributes *iface )
|
|||
|
||||
static inline int saxreader_has_handler(const saxlocator *locator, enum saxhandler_type type)
|
||||
{
|
||||
return (locator->vbInterface && locator->saxreader->saxhandlers[type].vbhandler) ||
|
||||
(!locator->vbInterface && locator->saxreader->saxhandlers[type].handler);
|
||||
struct saxanyhandler_iface *iface = &locator->saxreader->saxhandlers[type].u.anyhandler;
|
||||
return (locator->vbInterface && iface->vbhandler) || (!locator->vbInterface && iface->handler);
|
||||
}
|
||||
|
||||
static HRESULT saxreader_saxcharacters(saxlocator *locator, BSTR chars)
|
||||
{
|
||||
struct saxcontenthandler_iface *content = saxreader_get_contenthandler(locator->saxreader);
|
||||
HRESULT hr;
|
||||
|
||||
if (!saxreader_has_handler(locator, SAXContentHandler)) return S_OK;
|
||||
|
||||
if (locator->vbInterface)
|
||||
hr = IVBSAXContentHandler_characters(content->vbhandler, &chars);
|
||||
else
|
||||
hr = ISAXContentHandler_characters(content->handler, chars, SysStringLen(chars));
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
/* property names */
|
||||
|
@ -1550,7 +1583,6 @@ static void libxmlCharacters(
|
|||
int len)
|
||||
{
|
||||
saxlocator *This = ctx;
|
||||
struct saxcontenthandler_iface *handler = saxreader_get_contenthandler(This->saxreader);
|
||||
BSTR Chars;
|
||||
HRESULT hr;
|
||||
xmlChar *cur, *end;
|
||||
|
@ -1609,10 +1641,7 @@ static void libxmlCharacters(
|
|||
}
|
||||
|
||||
Chars = pooled_bstr_from_xmlCharN(&This->saxreader->pool, cur, end-cur);
|
||||
if(This->vbInterface)
|
||||
hr = IVBSAXContentHandler_characters(handler->vbhandler, &Chars);
|
||||
else
|
||||
hr = ISAXContentHandler_characters(handler->handler, Chars, SysStringLen(Chars));
|
||||
hr = saxreader_saxcharacters(This, Chars);
|
||||
|
||||
if (sax_callback_failed(This, hr))
|
||||
{
|
||||
|
@ -1745,33 +1774,58 @@ static void libxmlFatalError(void *ctx, const char *msg, ...)
|
|||
This->ret = E_FAIL;
|
||||
}
|
||||
|
||||
static void libxmlCDataBlock(void *ctx, const xmlChar *value, int len)
|
||||
/* The only reason this helper exists is that CDATA section are reported by chunks,
|
||||
newlines are used as delimiter. More than that, reader even alters input data before reporting.
|
||||
|
||||
This helper should be called for substring with trailing newlines.
|
||||
*/
|
||||
static BSTR saxreader_get_cdata_chunk(const xmlChar *str, int len)
|
||||
{
|
||||
saxlocator *This = ctx;
|
||||
struct saxcontenthandler_iface *content = saxreader_get_contenthandler(This->saxreader);
|
||||
struct saxlexicalhandler_iface *lexical = saxreader_get_lexicalhandler(This->saxreader);
|
||||
HRESULT hr = S_OK;
|
||||
xmlChar *beg = (xmlChar*)This->pParserCtxt->input->cur-len;
|
||||
xmlChar *cur, *end;
|
||||
int realLen;
|
||||
BSTR Chars;
|
||||
BOOL lastEvent = FALSE, change;
|
||||
BSTR bstr = bstr_from_xmlCharN(str, len), ret;
|
||||
WCHAR *ptr;
|
||||
|
||||
update_position(This, FALSE);
|
||||
while(beg-9>=This->pParserCtxt->input->base
|
||||
&& memcmp(beg-9, "<![CDATA[", sizeof(char[9])))
|
||||
ptr = bstr + len - 1;
|
||||
while ((*ptr == '\r' || *ptr == '\n') && ptr >= bstr)
|
||||
ptr--;
|
||||
|
||||
while (*++ptr)
|
||||
{
|
||||
if(*beg=='\n' || (*beg=='\r' && *(beg+1)!='\n'))
|
||||
This->line--;
|
||||
beg--;
|
||||
/* replace returns as:
|
||||
|
||||
- "\r<char>" -> "\n<char>"
|
||||
- "\r\r" -> "\r"
|
||||
- "\r\n" -> "\n"
|
||||
*/
|
||||
if (*ptr == '\r')
|
||||
{
|
||||
if (*(ptr+1) == '\r' || *(ptr+1) == '\n')
|
||||
{
|
||||
/* shift tail */
|
||||
memmove(ptr, ptr+1, len-- - (ptr-bstr));
|
||||
}
|
||||
else
|
||||
*ptr = '\n';
|
||||
}
|
||||
}
|
||||
This->column = 0;
|
||||
for(; beg>=This->pParserCtxt->input->base && *beg!='\n' && *beg!='\r'; beg--)
|
||||
This->column++;
|
||||
|
||||
if (saxreader_has_handler(This, SAXLexicalHandler))
|
||||
ret = SysAllocStringLen(bstr, len);
|
||||
SysFreeString(bstr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void libxml_cdatablock(void *ctx, const xmlChar *value, int len)
|
||||
{
|
||||
const xmlChar *start, *end;
|
||||
saxlocator *locator = ctx;
|
||||
struct saxlexicalhandler_iface *lexical = saxreader_get_lexicalhandler(locator->saxreader);
|
||||
HRESULT hr = S_OK;
|
||||
BSTR chars;
|
||||
int i;
|
||||
|
||||
update_position(locator, FALSE);
|
||||
if (saxreader_has_handler(locator, SAXLexicalHandler))
|
||||
{
|
||||
if (This->vbInterface)
|
||||
if (locator->vbInterface)
|
||||
hr = IVBSAXLexicalHandler_startCDATA(lexical->vbhandler);
|
||||
else
|
||||
hr = ISAXLexicalHandler_startCDATA(lexical->handler);
|
||||
|
@ -1779,61 +1833,66 @@ static void libxmlCDataBlock(void *ctx, const xmlChar *value, int len)
|
|||
|
||||
if(FAILED(hr))
|
||||
{
|
||||
format_error_message_from_id(This, hr);
|
||||
format_error_message_from_id(locator, hr);
|
||||
return;
|
||||
}
|
||||
|
||||
realLen = This->pParserCtxt->input->cur-beg-3;
|
||||
cur = beg;
|
||||
end = beg;
|
||||
start = value;
|
||||
end = NULL;
|
||||
i = 0;
|
||||
|
||||
while(1)
|
||||
while (i < len)
|
||||
{
|
||||
while(end-beg<realLen && *end!='\r') end++;
|
||||
if(end-beg==realLen)
|
||||
/* scan for newlines */
|
||||
if (value[i] == '\r' || value[i] == '\n')
|
||||
{
|
||||
end--;
|
||||
lastEvent = TRUE;
|
||||
/* skip newlines/linefeeds */
|
||||
while (i < len)
|
||||
{
|
||||
if (value[i] != '\r' && value[i] != '\n') break;
|
||||
i++;
|
||||
}
|
||||
end = &value[i];
|
||||
|
||||
/* report */
|
||||
chars = saxreader_get_cdata_chunk(start, end-start);
|
||||
TRACE("(chunk %s)\n", debugstr_w(chars));
|
||||
hr = saxreader_saxcharacters(locator, chars);
|
||||
SysFreeString(chars);
|
||||
|
||||
start = &value[i];
|
||||
end = NULL;
|
||||
}
|
||||
else if(end-beg==realLen-1 && *end=='\r' && *(end+1)=='\n')
|
||||
lastEvent = TRUE;
|
||||
|
||||
if(*end == '\r') change = TRUE;
|
||||
else change = FALSE;
|
||||
|
||||
if(change) *end = '\n';
|
||||
|
||||
if (saxreader_has_handler(This, SAXContentHandler))
|
||||
{
|
||||
Chars = pooled_bstr_from_xmlCharN(&This->saxreader->pool, cur, end-cur+1);
|
||||
if (This->vbInterface)
|
||||
hr = IVBSAXContentHandler_characters(content->vbhandler, &Chars);
|
||||
else
|
||||
hr = ISAXContentHandler_characters(content->handler, Chars, SysStringLen(Chars));
|
||||
}
|
||||
|
||||
if(change) *end = '\r';
|
||||
|
||||
if(lastEvent)
|
||||
break;
|
||||
|
||||
This->column += end-cur+2;
|
||||
end += 2;
|
||||
cur = end;
|
||||
i++;
|
||||
locator->column++;
|
||||
}
|
||||
|
||||
if (saxreader_has_handler(This, SAXLexicalHandler))
|
||||
/* no newline chars (or last chunk) report as a whole */
|
||||
if (!end && start == value)
|
||||
{
|
||||
if (This->vbInterface)
|
||||
/* report */
|
||||
chars = bstr_from_xmlCharN(start, len-(start-value));
|
||||
TRACE("(%s)\n", debugstr_w(chars));
|
||||
hr = saxreader_saxcharacters(locator, chars);
|
||||
SysFreeString(chars);
|
||||
}
|
||||
|
||||
if (saxreader_has_handler(locator, SAXLexicalHandler))
|
||||
{
|
||||
if (locator->vbInterface)
|
||||
hr = IVBSAXLexicalHandler_endCDATA(lexical->vbhandler);
|
||||
else
|
||||
hr = ISAXLexicalHandler_endCDATA(lexical->handler);
|
||||
}
|
||||
|
||||
if(FAILED(hr))
|
||||
format_error_message_from_id(This, hr);
|
||||
format_error_message_from_id(locator, hr);
|
||||
}
|
||||
|
||||
This->column += 4+end-cur;
|
||||
static xmlParserInputPtr libxmlresolveentity(void *ctx, const xmlChar *publicid, const xmlChar *systemid)
|
||||
{
|
||||
FIXME("entity resolving not implemented, %s, %s\n", publicid, systemid);
|
||||
return xmlSAX2ResolveEntity(ctx, publicid, systemid);
|
||||
}
|
||||
|
||||
/*** IVBSAXLocator interface ***/
|
||||
|
@ -2123,7 +2182,7 @@ static HRESULT WINAPI isaxlocator_getPublicId(
|
|||
|
||||
publicId = bstr_from_xmlChar(xmlSAX2GetPublicId(This->pParserCtxt));
|
||||
if(SysStringLen(publicId))
|
||||
This->publicId = (WCHAR*)&publicId;
|
||||
This->publicId = publicId;
|
||||
else
|
||||
{
|
||||
SysFreeString(publicId);
|
||||
|
@ -2145,7 +2204,7 @@ static HRESULT WINAPI isaxlocator_getSystemId(
|
|||
|
||||
systemId = bstr_from_xmlChar(xmlSAX2GetSystemId(This->pParserCtxt));
|
||||
if(SysStringLen(systemId))
|
||||
This->systemId = (WCHAR*)&systemId;
|
||||
This->systemId = systemId;
|
||||
else
|
||||
{
|
||||
SysFreeString(systemId);
|
||||
|
@ -2370,24 +2429,6 @@ static HRESULT internal_parseStream(saxreader *This, ISequentialStream *stream,
|
|||
return hr;
|
||||
}
|
||||
|
||||
static HRESULT internal_getEntityResolver(
|
||||
saxreader *This,
|
||||
void *pEntityResolver,
|
||||
BOOL vbInterface)
|
||||
{
|
||||
FIXME("(%p)->(%p) stub\n", This, pEntityResolver);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT internal_putEntityResolver(
|
||||
saxreader *This,
|
||||
void *pEntityResolver,
|
||||
BOOL vbInterface)
|
||||
{
|
||||
FIXME("(%p)->(%p) stub\n", This, pEntityResolver);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT internal_parse(
|
||||
saxreader* This,
|
||||
VARIANT varInput,
|
||||
|
@ -2737,7 +2778,7 @@ static ULONG WINAPI saxxmlreader_Release(
|
|||
|
||||
for (i = 0; i < SAXHandler_Last; i++)
|
||||
{
|
||||
struct saxhandler_iface *iface = &This->saxhandlers[i];
|
||||
struct saxanyhandler_iface *iface = &This->saxhandlers[i].u.anyhandler;
|
||||
|
||||
if (iface->handler)
|
||||
IUnknown_Release(iface->handler);
|
||||
|
@ -2870,18 +2911,18 @@ static HRESULT WINAPI saxxmlreader_putProperty(
|
|||
|
||||
static HRESULT WINAPI saxxmlreader_get_entityResolver(
|
||||
IVBSAXXMLReader* iface,
|
||||
IVBSAXEntityResolver **pEntityResolver)
|
||||
IVBSAXEntityResolver **resolver)
|
||||
{
|
||||
saxreader *This = impl_from_IVBSAXXMLReader( iface );
|
||||
return internal_getEntityResolver(This, pEntityResolver, TRUE);
|
||||
return saxreader_get_handler(This, SAXEntityResolver, TRUE, (void**)resolver);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI saxxmlreader_put_entityResolver(
|
||||
IVBSAXXMLReader* iface,
|
||||
IVBSAXEntityResolver *pEntityResolver)
|
||||
IVBSAXEntityResolver *resolver)
|
||||
{
|
||||
saxreader *This = impl_from_IVBSAXXMLReader( iface );
|
||||
return internal_putEntityResolver(This, pEntityResolver, TRUE);
|
||||
return saxreader_put_handler(This, SAXEntityResolver, resolver, TRUE);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI saxxmlreader_get_contentHandler(
|
||||
|
@ -3077,18 +3118,18 @@ static HRESULT WINAPI isaxxmlreader_putProperty(
|
|||
|
||||
static HRESULT WINAPI isaxxmlreader_getEntityResolver(
|
||||
ISAXXMLReader* iface,
|
||||
ISAXEntityResolver **ppEntityResolver)
|
||||
ISAXEntityResolver **resolver)
|
||||
{
|
||||
saxreader *This = impl_from_ISAXXMLReader( iface );
|
||||
return internal_getEntityResolver(This, ppEntityResolver, FALSE);
|
||||
return saxreader_get_handler(This, SAXEntityResolver, FALSE, (void**)resolver);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI isaxxmlreader_putEntityResolver(
|
||||
ISAXXMLReader* iface,
|
||||
ISAXEntityResolver *pEntityResolver)
|
||||
ISAXEntityResolver *resolver)
|
||||
{
|
||||
saxreader *This = impl_from_ISAXXMLReader( iface );
|
||||
return internal_putEntityResolver(This, pEntityResolver, FALSE);
|
||||
return saxreader_put_handler(This, SAXEntityResolver, resolver, FALSE);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI isaxxmlreader_getContentHandler(
|
||||
|
@ -3256,7 +3297,8 @@ HRESULT SAXXMLReader_create(MSXML_VERSION version, IUnknown *outer, LPVOID *ppOb
|
|||
reader->sax.comment = libxmlComment;
|
||||
reader->sax.error = libxmlFatalError;
|
||||
reader->sax.fatalError = libxmlFatalError;
|
||||
reader->sax.cdataBlock = libxmlCDataBlock;
|
||||
reader->sax.cdataBlock = libxml_cdatablock;
|
||||
reader->sax.resolveEntity = libxmlresolveentity;
|
||||
|
||||
*ppObj = &reader->IVBSAXXMLReader_iface;
|
||||
|
||||
|
|
|
@ -103,6 +103,9 @@ typedef struct
|
|||
|
||||
MSXML_VERSION version;
|
||||
xmlHashTablePtr cache;
|
||||
xmlChar **uris;
|
||||
int allocated;
|
||||
int count;
|
||||
|
||||
VARIANT_BOOL validateOnLoad;
|
||||
int read_only;
|
||||
|
@ -116,12 +119,6 @@ typedef struct
|
|||
LONG ref;
|
||||
} cache_entry;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
LONG index;
|
||||
BSTR* out;
|
||||
} cache_index_data;
|
||||
|
||||
/* datatypes lookup stuff
|
||||
* generated with help from gperf */
|
||||
#define DT_MIN_STR_LEN 2
|
||||
|
@ -744,7 +741,7 @@ void schemasInit(void)
|
|||
return;
|
||||
}
|
||||
buf = LockResource(datatypes_handle);
|
||||
datatypes_len = SizeofResource(MSXML_hInstance, datatypes_rsrc) - 1;
|
||||
datatypes_len = SizeofResource(MSXML_hInstance, datatypes_rsrc);
|
||||
|
||||
/* Resource is loaded as raw data,
|
||||
* need a null-terminated string */
|
||||
|
@ -844,7 +841,7 @@ static BOOL link_datatypes(xmlDocPtr schema)
|
|||
xmlNodePtr root, next, child;
|
||||
xmlNsPtr ns;
|
||||
|
||||
assert((void*)xmlGetExternalEntityLoader() == (void*)external_entity_loader);
|
||||
assert(xmlGetExternalEntityLoader() == external_entity_loader);
|
||||
root = xmlDocGetRootElement(schema);
|
||||
if (!root)
|
||||
return FALSE;
|
||||
|
@ -985,6 +982,55 @@ static void cache_free(void* data, xmlChar* name /* ignored */)
|
|||
cache_entry_release((cache_entry*)data);
|
||||
}
|
||||
|
||||
/* returns index or -1 if not found */
|
||||
static int cache_free_uri(schema_cache *cache, const xmlChar *uri)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < cache->count; i++)
|
||||
if (xmlStrEqual(cache->uris[i], uri))
|
||||
{
|
||||
heap_free(cache->uris[i]);
|
||||
return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static void cache_add_entry(schema_cache *cache, const xmlChar *uri, cache_entry *entry)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* meaning no entry found with this name */
|
||||
if (xmlHashRemoveEntry(cache->cache, uri, cache_free))
|
||||
{
|
||||
if (cache->count == cache->allocated)
|
||||
{
|
||||
cache->allocated *= 2;
|
||||
cache->uris = heap_realloc(cache->uris, cache->allocated*sizeof(xmlChar*));
|
||||
}
|
||||
i = cache->count++;
|
||||
}
|
||||
else
|
||||
i = cache_free_uri(cache, uri);
|
||||
|
||||
cache->uris[i] = heap_strdupxmlChar(uri);
|
||||
xmlHashAddEntry(cache->cache, uri, entry);
|
||||
}
|
||||
|
||||
static void cache_remove_entry(schema_cache *cache, const xmlChar *uri)
|
||||
{
|
||||
/* adjust index if entry was really removed */
|
||||
if (xmlHashRemoveEntry(cache->cache, uri, cache_free) == 0)
|
||||
{
|
||||
int i = cache_free_uri(cache, uri);
|
||||
if (i == -1) return;
|
||||
/* shift array */
|
||||
if (i != --cache->count)
|
||||
memmove(&cache->uris[i], &cache->uris[i+1], (cache->count-i)*sizeof(xmlChar*));
|
||||
}
|
||||
}
|
||||
|
||||
/* This one adds all namespaces defined in document to a cache, without anything
|
||||
associated with uri obviously.
|
||||
Unfortunately namespace:: axis implementation in libxml2 differs from what we need,
|
||||
|
@ -1033,8 +1079,7 @@ HRESULT cache_from_doc_ns(IXMLDOMSchemaCollection2 *iface, xmlnode *node)
|
|||
entry->schema = NULL;
|
||||
entry->doc = NULL;
|
||||
|
||||
xmlHashRemoveEntry(This->cache, ns->href, cache_free);
|
||||
xmlHashAddEntry(This->cache, ns->href, entry);
|
||||
cache_add_entry(This, ns->href, entry);
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
|
@ -1091,6 +1136,11 @@ static ULONG WINAPI schema_cache_Release(IXMLDOMSchemaCollection2* iface)
|
|||
|
||||
if (ref == 0)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < This->count; i++)
|
||||
heap_free(This->uris[i]);
|
||||
heap_free(This->uris);
|
||||
xmlHashFree(This->cache, cache_free);
|
||||
release_dispex(&This->dispex);
|
||||
heap_free(This);
|
||||
|
@ -1146,7 +1196,7 @@ static HRESULT WINAPI schema_cache_add(IXMLDOMSchemaCollection2* iface, BSTR uri
|
|||
{
|
||||
case VT_NULL:
|
||||
{
|
||||
xmlHashRemoveEntry(This->cache, name, cache_free);
|
||||
cache_remove_entry(This, name);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1164,8 +1214,7 @@ static HRESULT WINAPI schema_cache_add(IXMLDOMSchemaCollection2* iface, BSTR uri
|
|||
return E_FAIL;
|
||||
}
|
||||
|
||||
xmlHashRemoveEntry(This->cache, name, cache_free);
|
||||
xmlHashAddEntry(This->cache, name, entry);
|
||||
cache_add_entry(This, name, entry);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1214,8 +1263,7 @@ static HRESULT WINAPI schema_cache_add(IXMLDOMSchemaCollection2* iface, BSTR uri
|
|||
return E_FAIL;
|
||||
}
|
||||
|
||||
xmlHashRemoveEntry(This->cache, name, cache_free);
|
||||
xmlHashAddEntry(This->cache, name, entry);
|
||||
cache_add_entry(This, name, entry);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1263,7 +1311,7 @@ static HRESULT WINAPI schema_cache_remove(IXMLDOMSchemaCollection2* iface, BSTR
|
|||
|
||||
if (This->version == MSXML6) return E_NOTIMPL;
|
||||
|
||||
xmlHashRemoveEntry(This->cache, name, cache_free);
|
||||
cache_remove_entry(This, name);
|
||||
heap_free(name);
|
||||
return S_OK;
|
||||
}
|
||||
|
@ -1275,33 +1323,25 @@ static HRESULT WINAPI schema_cache_get_length(IXMLDOMSchemaCollection2* iface, L
|
|||
|
||||
if (!length)
|
||||
return E_POINTER;
|
||||
*length = xmlHashSize(This->cache);
|
||||
|
||||
*length = This->count;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static void cache_index(void* data /* ignored */, void* index, xmlChar* name)
|
||||
{
|
||||
cache_index_data* index_data = (cache_index_data*)index;
|
||||
|
||||
if (index_data->index-- == 0)
|
||||
*index_data->out = bstr_from_xmlChar(name);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI schema_cache_get_namespaceURI(IXMLDOMSchemaCollection2* iface,
|
||||
LONG index, BSTR* len)
|
||||
LONG index, BSTR* uri)
|
||||
{
|
||||
schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface);
|
||||
cache_index_data data = {index, len};
|
||||
TRACE("(%p)->(%i %p)\n", This, index, len);
|
||||
|
||||
if (!len)
|
||||
TRACE("(%p)->(%i %p)\n", This, index, uri);
|
||||
|
||||
if (!uri)
|
||||
return E_POINTER;
|
||||
|
||||
if (index >= xmlHashSize(This->cache))
|
||||
if (index >= This->count)
|
||||
return E_FAIL;
|
||||
|
||||
*len = NULL;
|
||||
xmlHashScan(This->cache, cache_index, &data);
|
||||
*uri = bstr_from_xmlChar(This->uris[index]);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
@ -1313,7 +1353,7 @@ static void cache_copy(void* data, void* dest, xmlChar* name)
|
|||
if (xmlHashLookup(This->cache, name) == NULL)
|
||||
{
|
||||
cache_entry_add_ref(entry);
|
||||
xmlHashAddEntry(This->cache, name, entry);
|
||||
cache_add_entry(This, name, entry);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1531,6 +1571,9 @@ HRESULT SchemaCache_create(MSXML_VERSION version, IUnknown* outer, void** obj)
|
|||
|
||||
This->IXMLDOMSchemaCollection2_iface.lpVtbl = &XMLDOMSchemaCollection2Vtbl;
|
||||
This->cache = xmlHashCreate(DEFAULT_HASHTABLE_SIZE);
|
||||
This->allocated = 10;
|
||||
This->count = 0;
|
||||
This->uris = heap_alloc(This->allocated*sizeof(xmlChar*));
|
||||
This->ref = 1;
|
||||
This->version = version;
|
||||
This->validateOnLoad = VARIANT_TRUE;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue