dfxplugin.html 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
  2. <html lang="en-us">
  3. <head>
  4. <meta name="GENERATOR" content="PasDoc 0.11.0">
  5. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  6. <title>Writing file system plugins for Double Commander</title>
  7. <link rel="StyleSheet" type="text/css" href="pasdoc.css">
  8. </head>
  9. <body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"
  10. alink="#ff0000" link="#0000ff" vlink="#800080">
  11. <h1 class="unit">Writing
  12. file system plugins for Double Commander</h1>
  13. <table class="sections wide_list">
  14. <tbody>
  15. <tr>
  16. <td><a class="section" href="#%40Description">Description</a></td>
  17. <td><span class="section">Structures</span></td>
  18. <td><a class="section" href="#%40FuncsProcs">Functions
  19. and Procedures</a></td>
  20. <td><span class="section">Types</span></td>
  21. <td><a class="section" href="#%40Constants">Constants</a></td>
  22. </tr>
  23. </tbody>
  24. </table>
  25. <a name="@Description"></a>
  26. <h2 class="description">Description</h2>
  27. <p>This help file is about writing
  28. file system plugins for Double
  29. Commander.</p>
  30. <a name="@FuncsProcs"></a>
  31. <h3 class="summary">Functions
  32. and Procedures</h3>
  33. <table class="summary wide_list">
  34. <tbody>
  35. <tr class="list">
  36. <td class="itemcode"><code>HANDLE
  37. __stdcall <a href="#FsOpen">VfsOpen</a>(char*
  38. Path);</code><code><br>
  39. </code></td>
  40. </tr>
  41. <tr class="list2">
  42. <td class="itemcode"><code>void
  43. __stdcall <a href="#FsClose">VfsClose</a>(HANDLE
  44. </code><code>hInstance</code><code>);</code><code><br>
  45. </code><code></code></td>
  46. </tr>
  47. <tr class="list">
  48. <td class="itemcode"><code>BOOL
  49. __stdcall <a href="#FsOpen">VfsFindFirst</a>(</code><code>HANDLE
  50. </code><code>hInstance,
  51. </code><code>char*
  52. Path,&nbsp;</code><code>VFS_FIND_DATA*</code><code>
  53. FindData);</code><code><br>
  54. </code></td>
  55. </tr>
  56. <tr class="list2">
  57. <td class="itemcode"><code>BOOL
  58. __stdcall <a href="#FsClose">VfsFindNext</a>(</code><code>HANDLE
  59. </code><code>hInstance,
  60. </code><code>VFS_FIND_DATA*
  61. FindData</code><code>);</code><code><br>
  62. </code><code></code></td>
  63. </tr>
  64. <tr class="list">
  65. <td class="itemcode"><code>void
  66. __stdcall <a href="#FsOpen">VfsFindClose</a>(</code><code></code><code>HANDLE
  67. </code><code>hInstance,
  68. </code><code>VFS_FIND_DATA*
  69. FindData</code><code></code><code>);</code><code><br>
  70. </code></td>
  71. </tr>
  72. <tr class="list2">
  73. <td class="itemcode"><code>int
  74. __stdcall <a href="#VfsMoveFile">VfsMoveFile</a>(</code><code>HANDLE
  75. hInstance, char* OldName, char* NewName, int CopyFlags</code><code></code><code></code><code>);</code><code><br>
  76. </code><code></code></td>
  77. </tr>
  78. <tr class="list">
  79. <td class="itemcode"><code>int
  80. __stdcall <a href="#VfsDeleteFile">VfsDeleteFile</a>(HANDLE
  81. hInstance,
  82. char*
  83. RemotePath);</code><code><br>
  84. </code></td>
  85. </tr>
  86. <tr class="list2">
  87. <td class="itemcode"><code>int
  88. __stdcall <a href="#VfsGetFile">VfsGetFile</a>(</code><code>HANDLE
  89. hInstance, char* RemoteName, char* LocalName, int CopyFlags</code><code>);</code><code><br>
  90. </code><code></code></td>
  91. </tr>
  92. <tr class="list">
  93. <td class="itemcode"><code>int
  94. __stdcall <a href="#VfsPutFile">VfsPutFile</a>(HANDLE
  95. hInstance, char*
  96. LocalName, char* RemoteName, int CopyFlags);</code><code><br>
  97. </code></td>
  98. </tr>
  99. <tr class="list2">
  100. <td class="itemcode"><code>int
  101. __stdcall <a href="#VfsExecuteFile">VfsExecuteFile</a>(</code><code>HANDLE
  102. hInstance, HWND MainWin, char* RemoteName, char* Verb</code><code>);</code><code><br>
  103. </code><code></code></td>
  104. </tr>
  105. <tr class="list">
  106. <td class="itemcode"><code>int
  107. __stdcall <a href="#VfsCreateFolder">VfsCreateFolder</a>(HANDLE
  108. hInstance,
  109. char* RemotePath);</code><code><br>
  110. </code></td>
  111. </tr>
  112. <tr class="list2">
  113. <td class="itemcode"><code>int
  114. __stdcall <a href="#VfsRemoveFolder">VfsRemoveFolder</a>(</code><code>HANDLE
  115. hInstance, char* RemotePath</code><code>);</code><code><br>
  116. </code><code></code></td>
  117. </tr>
  118. <tr class="list">
  119. <td class="itemcode"><code>void
  120. __stdcall <a href="#VfsNetworkGetSupportedProtocols">VfsNetworkGetSupportedProtocols</a>(</code><code></code><code>char*
  121. Protocols, int MaxLen);</code><code><br>
  122. </code></td>
  123. </tr>
  124. <tr class="list2">
  125. <td class="itemcode"><code>int
  126. __stdcall <a href="#VfsNetworkGetConnection">VfsNetworkGetConnection</a>(</code><code>HANDLE
  127. hInstance, </code><code>int
  128. Index, </code><code>char*
  129. </code><code>Connection,
  130. int MaxLen);</code><code><br>
  131. </code><code></code></td>
  132. </tr>
  133. <tr class="list">
  134. <td class="itemcode"><code>int
  135. __stdcall</code><code>
  136. <a href="#VfsNetworkManageConnection">VfsNetworkManageConnection</a>(</code><code>HANDLE
  137. hInstance, </code><code>HWND
  138. MainWin, </code><code>char*
  139. </code><code>Connection,
  140. int Action, int MaxLen);</code><code><br>
  141. </code><code></code></td>
  142. </tr>
  143. <tr class="list2">
  144. <td class="itemcode"><code>int
  145. __stdcall</code><code>
  146. <a href="#VfsNetworkOpenConnection">VfsNetworkOpenConnection</a>(</code><code>HANDLE
  147. hInstance, </code><code>char*
  148. </code><code>Connection,&nbsp;</code><code>char*</code><code>
  149. RootDir,</code><code>
  150. </code><code>char*</code><code>
  151. RemotePath, int
  152. MaxLen);</code><code><br>
  153. </code><code></code></td>
  154. </tr>
  155. <tr class="list">
  156. <td class="itemcode"><code>int
  157. __stdcall</code><code>
  158. <a href="#VfsNetworkCloseConnection">VfsNetworkCloseConnection</a>(</code><code>HANDLE
  159. hInstance, </code><code>char*
  160. </code><code>Connection</code><code>);</code><code><br>
  161. </code><code></code></td>
  162. </tr>
  163. </tbody>
  164. </table>
  165. <a name="@Constants"></a>
  166. <h3 class="summary">Constants</h3>
  167. <table class="summary wide_list">
  168. <tbody>
  169. <tr class="list">
  170. <td class="itemcode"><code><b><span
  171. style="font-family: monospace;"><a href="#FS_NM_ACTION_ADD">VFS_NM_ACTION_ADD</a>&nbsp;&nbsp;&nbsp;&nbsp;
  172. = 0;</span></b></code></td>
  173. </tr>
  174. <tr class="list2">
  175. <td class="itemcode"><code><b><span
  176. style="font-family: monospace;"><a href="#FS_NM_ACTION_EDIT">VFS_NM_ACTION_EDIT</a>&nbsp;&nbsp;&nbsp;
  177. = 1;</span></b></code></td>
  178. </tr>
  179. <tr class="list">
  180. <td class="itemcode"><code><b><span
  181. style="font-family: monospace;"><a href="#FS_NM_ACTION_DELETE">VFS_NM_ACTION_DELETE</a>&nbsp;
  182. = 2;</span></b></code></td>
  183. </tr>
  184. <tr class="list2">
  185. <td class="itemcode"><code><b><span
  186. style="font-family: monospace;"><a href="#FS_NM_ACTION_EDIT">VFS_RET_OK</a>
  187. &nbsp;&nbsp;
  188. = 0;</span></b></code></td>
  189. </tr>
  190. <tr class="list">
  191. <td class="itemcode"><code><b><span
  192. style="font-family: monospace;"><a href="#FS_NM_ACTION_DELETE">VFS_RET_FAILED</a>&nbsp;
  193. = 1;</span></b></code></td>
  194. </tr>
  195. <tr class="list2">
  196. <td class="itemcode"><code><b><span
  197. style="font-family: monospace;"><a href="#FS_NM_ACTION_EDIT">VFS_RET_ABORTED</a>&nbsp;
  198. = 2;</span></b></code></td>
  199. </tr>
  200. <tr class="list">
  201. <td class="itemcode"><code><b><span
  202. style="font-family: monospace;"><a href="000">VFS_RET_NOT_SUPPORTED</a>
  203. &nbsp;&nbsp;
  204. = 3;</span></b></code><code><b><span style="font-family: monospace;"></span></b></code></td>
  205. </tr>
  206. <tr class="list2">
  207. <td class="itemcode"><a href="dfxplugin.html#FS_NM_ACTION_DELETE"><code><b><span
  208. style="font-family: monospace;"></span></b></code></a><code><b><span
  209. style="font-family: monospace;"><a
  210. href="dfxplugin.html#FS_NM_ACTION_DELETE">VFS_RET_FILE_NOT_FOUND</a>&nbsp;
  211. = 4;</span></b></code><code><b><span style="font-family: monospace;"></span></b></code></td>
  212. </tr>
  213. <tr class="list">
  214. <td class="itemcode"><code><b><span
  215. style="font-family: monospace;"><a href="#FS_NM_ACTION_DELETE">VFS_RET_FILE_EXISTS</a>&nbsp;
  216. = 5;</span></b></code></td>
  217. </tr>
  218. <tr class="list2">
  219. <td class="itemcode"><code><b><span
  220. style="font-family: monospace;"><a href="#FS_NM_ACTION_EDIT">VFS_RET_READ_ERROR</a>
  221. &nbsp;&nbsp;
  222. = 6;</span></b></code></td>
  223. </tr>
  224. <tr class="list">
  225. <td class="itemcode"><code><b><span
  226. style="font-family: monospace;"><a href="#FS_NM_ACTION_DELETE">VFS_RET_WRITE_ERROR</a>&nbsp;
  227. = 7;</span></b></code></td>
  228. </tr>
  229. <tr class="list2">
  230. <td class="itemcode"><code><b><span
  231. style="font-family: monospace;"><a href="#FS_NM_ACTION_EDIT">VFS_EXEC_OK</a>
  232. &nbsp;&nbsp;
  233. = 0;</span></b></code></td>
  234. </tr>
  235. <tr class="list">
  236. <td class="itemcode"><code><b><span
  237. style="font-family: monospace;"><a href="#FS_NM_ACTION_DELETE">VFS_EXEC_ERROR</a>&nbsp;
  238. = 1;</span></b></code></td>
  239. </tr>
  240. <tr class="list2">
  241. <td class="itemcode"><code><b><span
  242. style="font-family: monospace;"><a href="#FS_NM_ACTION_EDIT">VFS_EXEC_YOURSELF</a>
  243. &nbsp;&nbsp;
  244. = 2;</span></b></code></td>
  245. </tr>
  246. <tr class="list">
  247. <td class="itemcode"><code><b><span
  248. style="font-family: monospace;"><a href="#FS_NM_ACTION_DELETE">VFS_EXEC_SYMLINK</a>&nbsp;
  249. = 3;</span></b></code></td>
  250. </tr>
  251. </tbody>
  252. </table>
  253. <h2 class="description">Description</h2>
  254. <h3 class="detail">Functions
  255. and Procedures</h3>
  256. <table class="detail wide_list">
  257. <tbody>
  258. <tr class="list">
  259. <td class="itemcode"><code><a name="VfsOpen"></a>HANDLE
  260. __stdcall VfsOpen(char* Path);<br>
  261. </code><code></code></td>
  262. </tr>
  263. <tr>
  264. <td colspan="1">
  265. <p>Initialize and open
  266. plugin file system.</p>
  267. <h6 class="description_section">Parameters</h6>
  268. <dl class="parameters">
  269. <dt>Path</dt>
  270. <dd>Path that must be
  271. opened by plugin<br>
  272. </dd>
  273. </dl>
  274. <h6 class="description_section">Returns</h6>
  275. <p class="return">The
  276. function returns plugin instance handle if
  277. successful, <code>NULL</code>
  278. otherwise</p>
  279. </td>
  280. </tr>
  281. </tbody>
  282. </table>
  283. <table class="detail wide_list">
  284. <tbody>
  285. <tr class="list">
  286. <td class="itemcode"><code><a name="VfsClose"></a>void
  287. __stdcall VfsClose(HANDLE&nbsp;</code><code>hInstance</code><code>);</code><code><br>
  288. </code><code></code></td>
  289. </tr>
  290. <tr>
  291. <td colspan="1">
  292. <p>Finalize and close plugin
  293. file system.</p>
  294. <h6 class="description_section">Parameters</h6>
  295. <dl class="parameters">
  296. <dt>Handle</dt>
  297. <dd>Plugin file system
  298. instance handle that have been returned by FsOpen<br>
  299. </dd>
  300. </dl>
  301. </td>
  302. </tr>
  303. </tbody>
  304. </table>
  305. <table class="detail wide_list">
  306. <tbody>
  307. <tr class="list">
  308. <td class="itemcode"><code><a name="VfsMoveFile"></a>BOOL
  309. __stdcall VfsMoveFile(</code><code>HANDLE
  310. hInstance, char* OldName, char* NewName, int CopyFlags</code><code>);<br>
  311. </code><code></code></td>
  312. </tr>
  313. <tr>
  314. <td colspan="1">
  315. <p>VfsMoveFile is called to
  316. transfer (copy or move) a file
  317. within the plugin's file system.</p>
  318. <h6 class="description_section">Parameters</h6>
  319. <dl class="parameters">
  320. <dt><code>hInstance</code></dt>
  321. <dd>Plugin file system
  322. instance handle<br>
  323. </dd>
  324. <dt><code>OldName</code></dt>
  325. <dd>Name of the remote
  326. source file, with full path<br>
  327. </dd>
  328. <dt><code>NewName</code></dt>
  329. <dd>Name of the remote
  330. destination file, with full path<br>
  331. </dd>
  332. <dt><code>CopyFlags</code><code></code></dt>
  333. <dd>Can be a combination
  334. of the VFS_COPYFLAGS_XXX flags<br>
  335. </dd>
  336. </dl>
  337. <h6 class="description_section">Returns</h6>
  338. <p class="return">The
  339. function returns <code>True</code>
  340. if
  341. successful, <code>False</code>
  342. otherwise</p>
  343. </td>
  344. </tr>
  345. </tbody>
  346. </table>
  347. <table class="detail wide_list">
  348. <tbody>
  349. <tr class="list">
  350. <td class="itemcode"><code><a name="VfsGetFile"></a>BOOL
  351. __stdcall VfsGetFile(</code><code>HANDLE
  352. hInstance, char* RemoteName,char* LocalName,int CopyFlags</code><code>);<br>
  353. </code><code></code></td>
  354. </tr>
  355. <tr>
  356. <td colspan="1">
  357. <p>VfsGetFile is called to
  358. transfer a file from the plugin's file system to the normal file system.</p>
  359. <h6 class="description_section">Parameters</h6>
  360. <dl class="parameters">
  361. <dt><code>hInstance</code></dt>
  362. <dd>Plugin file system
  363. instance handle<br>
  364. </dd>
  365. <dt><code>RemoteName</code></dt>
  366. <dd>Name of the file to be
  367. retrieved, with full path<br>
  368. </dd>
  369. <dt><code>LocalName</code></dt>
  370. <dd>Local file name with
  371. full path<br>
  372. </dd>
  373. <dt><code>CopyFlags</code><code></code></dt>
  374. <dd>Can be a combination
  375. of the VFS_COPYFLAGS_XXX flags<br>
  376. </dd>
  377. </dl>
  378. <h6 class="description_section">Returns</h6>
  379. <p class="return">The
  380. function returns <code>True</code>
  381. if
  382. successful, <code>False</code>
  383. otherwise</p>
  384. </td>
  385. </tr>
  386. </tbody>
  387. </table>
  388. <table class="detail wide_list">
  389. <tbody>
  390. <tr class="list">
  391. <td class="itemcode"><code><a name="VfsPutFile"></a>BOOL
  392. __stdcall VfsPutFile(</code><code>HANDLE
  393. hInstance, char* LocalName, char* RemoteName, int CopyFlags</code><code>);<br>
  394. </code><code></code></td>
  395. </tr>
  396. <tr>
  397. <td colspan="1">
  398. <p>VfsPutFile is called to
  399. transfer a file from the normal file system to the plugin's file system.</p>
  400. <h6 class="description_section">Parameters</h6>
  401. <dl class="parameters">
  402. <dt><code>hInstance</code></dt>
  403. <dd>Plugin file system
  404. instance handle<br>
  405. </dd>
  406. <dt><code>LocalName</code></dt>
  407. <dd>Local file name with
  408. full path<br>
  409. </dd>
  410. <dt><code>RemoteName</code></dt>
  411. <dd>Name of the remote
  412. file, with full path<br>
  413. </dd>
  414. <dt><code>CopyFlags</code><code></code></dt>
  415. <dd>Can be a combination
  416. of the VFS_COPYFLAGS_XXX flags<br>
  417. </dd>
  418. </dl>
  419. <h6 class="description_section">Returns</h6>
  420. <p class="return">The
  421. function returns <code>True</code>
  422. if
  423. successful, <code>False</code>
  424. otherwise</p>
  425. </td>
  426. </tr>
  427. </tbody>
  428. </table>
  429. <table class="detail wide_list">
  430. <tbody>
  431. <tr class="list">
  432. <td class="itemcode"><code><a name="VfsDeleteFile"></a>BOOL
  433. __stdcall VfsDeleteFile(</code><code>HANDLE
  434. hInstance,
  435. char*
  436. RemotePath</code><code>);<br>
  437. </code><code></code></td>
  438. </tr>
  439. <tr>
  440. <td colspan="1">
  441. <p>VfsDeleteFile is called
  442. to delete a file from the
  443. plugin's file system.</p>
  444. <h6 class="description_section">Parameters</h6>
  445. <dl class="parameters">
  446. <dt><code>hInstance</code></dt>
  447. <dd>Plugin file system
  448. instance handle<br>
  449. </dd>
  450. <dt><code></code><code>RemotePath</code><code></code></dt>
  451. <dd>Name of the file to be
  452. deleted, with full path<br>
  453. </dd>
  454. </dl>
  455. <h6 class="description_section">Returns</h6>
  456. <p class="return">The
  457. function returns <code>True</code>
  458. if
  459. successful, <code>False</code>
  460. otherwise</p>
  461. </td>
  462. </tr>
  463. </tbody>
  464. </table>
  465. <table class="detail wide_list">
  466. <tbody>
  467. <tr class="list">
  468. <td class="itemcode"><code><a name="VfsExecuteFile"></a>int
  469. __stdcall VfsExecuteFile(HANDLE&nbsp;</code><code>hInstance,
  470. HWND MainWin, </code><code>char*
  471. RemoteName, char* Verb</code><code>);<br>
  472. </code><code></code></td>
  473. </tr>
  474. <tr>
  475. <td colspan="1">
  476. <p>VfsExecuteFile is called
  477. to execute a file on the
  478. plugin's file system, or show its property sheet.</p>
  479. <h6 class="description_section">Parameters</h6>
  480. <dl class="parameters">
  481. <dt><code>hInstance</code></dt>
  482. <dd>Plugin file system
  483. instance handle </dd>
  484. <dt><code>MainWin</code></dt>
  485. <dd>Parent window which
  486. can be used for showing a
  487. property sheet<br>
  488. </dd>
  489. <dt><code>RemoteName</code></dt>
  490. <dd>Name of the file to be
  491. executed, with full path </dd>
  492. <dt><code>Verb</code></dt>
  493. <dd>Plugin file system
  494. instance handle that have been returned by VfsOpen </dd>
  495. </dl>
  496. <h6 class="description_section">Returns</h6>
  497. <p class="return">The
  498. function returns <code>True</code>
  499. if
  500. successful, <code>False</code>
  501. otherwise</p>
  502. </td>
  503. </tr>
  504. </tbody>
  505. </table>
  506. <table class="detail wide_list">
  507. <tbody>
  508. <tr class="list">
  509. <td class="itemcode"><code><a name="VfsCreateFolder"></a>int
  510. __stdcall VfsCreateFolder(HANDLE&nbsp;</code><code>hInstance,
  511. </code><code>char*
  512. RemoteName</code><code>);<br>
  513. </code><code></code></td>
  514. </tr>
  515. <tr>
  516. <td colspan="1">
  517. <p>VfsCreateFolder is called
  518. to create a directory on the plugin's file system.</p>
  519. <h6 class="description_section">Parameters</h6>
  520. <dl class="parameters">
  521. <dt><code>hInstance</code></dt>
  522. <dd>Plugin file system
  523. instance handle </dd>
  524. <dt><code>RemoteName</code></dt>
  525. <dd>Name of the directory
  526. to be created, with full path </dd>
  527. </dl>
  528. <h6 class="description_section">Returns</h6>
  529. <p class="return">The
  530. function returns <code>True</code>
  531. if
  532. successful, <code>False</code>
  533. otherwise</p>
  534. </td>
  535. </tr>
  536. </tbody>
  537. </table>
  538. <table class="detail wide_list">
  539. <tbody>
  540. <tr class="list">
  541. <td class="itemcode"><code><a name="VfsRemoveFolder"></a>int
  542. __stdcall VfsRemoveFolder(HANDLE&nbsp;</code><code>hInstance,
  543. char* RemoteName</code><code>);<br>
  544. </code><code></code></td>
  545. </tr>
  546. <tr>
  547. <td colspan="1">
  548. <p>VfsRemoveFolder is called
  549. to remove a directory from the plugin's file system.</p>
  550. <h6 class="description_section">Parameters</h6>
  551. <dl class="parameters">
  552. <dt><code>hInstance</code></dt>
  553. <dd>Plugin file system
  554. instance handle </dd>
  555. <dt><code>RemoteName</code></dt>
  556. <dd>Name of the directory
  557. to be removed, with full path </dd>
  558. </dl>
  559. <h6 class="description_section">Returns</h6>
  560. <p class="return">The
  561. function returns <code>True</code>
  562. if
  563. successful, <code>False</code>
  564. otherwise</p>
  565. </td>
  566. </tr>
  567. </tbody>
  568. </table>
  569. <table class="detail wide_list">
  570. <tbody>
  571. <tr class="list">
  572. <td class="itemcode"><code><a
  573. name="VfsNetworkGetSupportedProtocols"></a>void
  574. __stdcall VfsNetworkGetSupportedProtocols(char*
  575. Protocols, int MaxLen);<br>
  576. </code><code></code></td>
  577. </tr>
  578. <tr>
  579. <td colspan="1">
  580. <p>VfsNetworkGetSupportedProtocols
  581. is called to retrieve&nbsp;protocols
  582. that supported by plugin.</p>
  583. <h6 class="description_section">Parameters</h6>
  584. <dl class="parameters">
  585. <dt>Protocols</dt>
  586. <dd>Pointer to a buffer
  587. (allocated by the calling program) which can receive the&nbsp;<span
  588. id="result_box" class="short_text"><span style="" title="">semicolon</span></span>
  589. separated protocol list, e.g. "http://;ftp://"<br>
  590. </dd>
  591. <dt>MaxLen</dt>
  592. <dd>Maximum number of
  593. characters (including the final 0) which fit in the buffer.</dd>
  594. </dl>
  595. </td>
  596. </tr>
  597. </tbody>
  598. </table>
  599. <table class="detail wide_list">
  600. <tbody>
  601. <tr class="list">
  602. <td class="itemcode"><code><a name="VfsNetworkGetConnection"></a></code><code>BOOL
  603. __stdcall VfsNetworkGetConnection(</code><code>int
  604. Index, char* </code><code>Connection,
  605. int MaxLen);<br>
  606. </code><code></code><code></code><code></code></td>
  607. </tr>
  608. <tr>
  609. <td colspan="1">
  610. <p>VfsNetworkGetConnection
  611. is
  612. called to enumerate all connections that plugin has.&nbsp;Index is
  613. increased by 1
  614. starting from 0 until the plugin returns <code>False</code>.</p>
  615. <h6 class="description_section">Parameters</h6>
  616. <dl class="parameters">
  617. <dt>Index</dt>
  618. <dd>The index of the
  619. connection for which DC requests information. Starting with 0,
  620. the&nbsp;Index is increased until the plugin returns <code>False</code>.<br>
  621. </dd>
  622. <dt>Connection</dt>
  623. <dd>Here the plugin has to
  624. return the name of the connection with
  625. index&nbsp;Index.&nbsp;You may return a maximum of maxlen
  626. characters, including the trailing 0. </dd>
  627. <dt>MaxLen</dt>
  628. <dd>The maximum number of
  629. characters, including the trailing 0, which may be returned in each of
  630. the connections.</dd>
  631. </dl>
  632. <h6 class="description_section">Returns</h6>
  633. <p class="return">The
  634. function returns <code>True</code>
  635. if
  636. successful, <code>False</code>
  637. otherwise</p>
  638. </td>
  639. </tr>
  640. </tbody>
  641. </table>
  642. <table class="detail wide_list">
  643. <tbody>
  644. <tr class="list">
  645. <td class="itemcode"><code><a name="VfsNetworkManageConnection"></a></code><code>BOOL
  646. __stdcall</code><code>
  647. VfsNetworkManageConnection(</code><code>HWND
  648. MainWin, char* </code><code>Connection,
  649. int Action, int MaxLen);<br>
  650. </code><code></code><code></code><code></code><code></code></td>
  651. </tr>
  652. <tr>
  653. <td colspan="1">
  654. <p>VfsNetworkManageConnection
  655. is called from "Connection manager" dialog
  656. when user wants to add/edit/delete connection.</p>
  657. <h6 class="description_section">Parameters</h6>
  658. <dl class="parameters">
  659. <dt>MainWin</dt>
  660. <dd>Parent window which
  661. can be used for showing a connection
  662. configuration dialog.<br>
  663. </dd>
  664. <dt>Connection</dt>
  665. <dd>In: Connection name
  666. for edit/delete action</dd>
  667. <dd>Out: Connection name
  668. of new connection for add action</dd>
  669. <dt>Action</dt>
  670. <dd>Action type:&nbsp;<code><b><span
  671. style="font-family: monospace;"><a
  672. href="wfxplugin.html#FS_NM_ACTION_ADD">FS_NM_ACTION_ADD</a></span></b></code>
  673. or <code><b><span style="font-family: monospace;"><a
  674. href="wfxplugin.html#FS_NM_ACTION_EDIT">FS_NM_ACTION_EDIT</a>&nbsp;</span></b></code>or
  675. <code><b><span style="font-family: monospace;"><a
  676. href="wfxplugin.html#FS_NM_ACTION_DELETE">FS_NM_ACTION_DELETE</a></span></b></code>
  677. </dd>
  678. <dt>MaxLen</dt>
  679. <dd>Maximum number of
  680. characters that you can return in Connection, including the final 0.</dd>
  681. </dl>
  682. <h6 class="description_section">Returns</h6>
  683. <p class="return">The
  684. function returns <code>True</code>
  685. if
  686. successful, <code>False</code>
  687. otherwise</p>
  688. </td>
  689. </tr>
  690. </tbody>
  691. </table>
  692. <table class="detail wide_list">
  693. <tbody>
  694. <tr class="list">
  695. <td class="itemcode"><code><a name="VfsNetworkOpenConnection"></a></code><code>BOOL
  696. __stdcall</code><code>
  697. VfsNetworkOpenConnection(</code><code>char*
  698. </code><code>Connection,&nbsp;</code><code>char*</code><code>
  699. RootDir,</code><code>
  700. </code><code>char*</code><code>
  701. RemotePath, int
  702. MaxLen);<br>
  703. </code><code></code><code></code><code></code></td>
  704. </tr>
  705. <tr>
  706. <td colspan="1">
  707. <p><span id="result_box" class="short_text"><span style=""
  708. title="">VfsNetworkOpenConnection is
  709. called when the user wants to open a connection to the
  710. network</span></span>.</p>
  711. <h6 class="description_section">Parameters</h6>
  712. <dl class="parameters">
  713. <dt>Connection</dt>
  714. <dd>In: Connection name</dd>
  715. <dd>Out: Server
  716. address, e.g. "ftp://ftp.chg.ru"<br>
  717. </dd>
  718. <dt>RootDir</dt>
  719. <dd>Here the plugin has to
  720. return the root directory of the opening connection, e.g. "/"</dd>
  721. <dt>RemotePath</dt>
  722. <dd>Here the plugin has to
  723. return the remote path of the opening connection, e.g. "/pub/Linux"</dd>
  724. <dt>MaxLen</dt>
  725. <dd>Maximum number of
  726. characters that you can return in Connection, RootDir and RemotePath,
  727. including
  728. the
  729. final 0. </dd>
  730. </dl>
  731. <h6 class="description_section">Returns</h6>
  732. <p class="return">The
  733. function returns <code>True</code>
  734. if
  735. successful, <code>False</code>
  736. otherwise</p>
  737. </td>
  738. </tr>
  739. </tbody>
  740. </table>
  741. <table class="detail wide_list">
  742. <tbody>
  743. <tr class="list">
  744. <td class="itemcode"><code><a name="VfsNetworkCloseConnection"></a></code><code>BOOL
  745. __stdcall</code><code>
  746. VfsNetworkCloseConnection(</code><code>char*
  747. </code><code>Connection</code><code>);<br>
  748. </code><code></code><code></code><code></code></td>
  749. </tr>
  750. <tr>
  751. <td colspan="1">
  752. <p><span id="result_box" class="short_text"><span style=""
  753. title="">VfsNetworkOpenConnection is
  754. called when the user wants to close a connection to the
  755. network</span></span>.</p>
  756. <h6 class="description_section">Parameters</h6>
  757. <dl class="parameters">
  758. <dt>Connection</dt>
  759. <dd>Connection name</dd>
  760. </dl>
  761. <h6 class="description_section">Returns</h6>
  762. <p class="return">The
  763. function returns <code>True</code>
  764. if
  765. successful, <code>False</code>
  766. otherwise</p>
  767. </td>
  768. </tr>
  769. </tbody>
  770. </table>
  771. <h3 class="detail">Constants</h3>
  772. <table class="detail wide_list">
  773. <tbody>
  774. <tr class="list">
  775. <td class="itemcode"><a name="FS_NM_ACTION_ADD"></a><code></code><b><span
  776. style="font-family: monospace;">VFS_NM_ACTION_ADD&nbsp;&nbsp;&nbsp;&nbsp;
  777. = 0;</span></b><code></code></td>
  778. </tr>
  779. <tr>
  780. <td colspan="1">
  781. <p>Add connection action.</p>
  782. </td>
  783. </tr>
  784. </tbody>
  785. </table>
  786. <table class="detail wide_list">
  787. <tbody>
  788. <tr class="list">
  789. <td class="itemcode"><a name="FS_NM_ACTION_EDIT"></a><code></code><b><span
  790. style="font-family: monospace;">VFS_NM_ACTION_EDIT&nbsp;&nbsp;&nbsp;
  791. = 1;</span></b><code></code></td>
  792. </tr>
  793. <tr>
  794. <td colspan="1">
  795. <p>Edit connection action.</p>
  796. </td>
  797. </tr>
  798. </tbody>
  799. </table>
  800. <table class="detail wide_list">
  801. <tbody>
  802. <tr class="list">
  803. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  804. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  805. = 2;</span></b><code></code></td>
  806. </tr>
  807. <tr>
  808. <td colspan="1">
  809. <p>Delete connection action.</p>
  810. </td>
  811. </tr>
  812. </tbody>
  813. </table>
  814. <table class="detail wide_list">
  815. <tbody>
  816. <tr class="list">
  817. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><code><b><span
  818. style="font-family: monospace;">VFS_RET_OK</span></b></code><b><span
  819. style="font-family: monospace;">&nbsp;
  820. = 0;</span></b><code></code></td>
  821. </tr>
  822. <tr>
  823. <td colspan="1">
  824. <p>Delete connection action.</p>
  825. </td>
  826. </tr>
  827. </tbody>
  828. </table>
  829. <table class="detail wide_list">
  830. <tbody>
  831. <tr class="list">
  832. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  833. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  834. = 2;</span></b><code></code></td>
  835. </tr>
  836. <tr>
  837. <td colspan="1">
  838. <p>Delete connection action.</p>
  839. </td>
  840. </tr>
  841. </tbody>
  842. </table>
  843. <table class="detail wide_list">
  844. <tbody>
  845. <tr class="list">
  846. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  847. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  848. = 2;</span></b><code></code></td>
  849. </tr>
  850. <tr>
  851. <td colspan="1">
  852. <p>Delete connection action.</p>
  853. </td>
  854. </tr>
  855. </tbody>
  856. </table>
  857. <table class="detail wide_list">
  858. <tbody>
  859. <tr class="list">
  860. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  861. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  862. = 2;</span></b><code></code></td>
  863. </tr>
  864. <tr>
  865. <td colspan="1">
  866. <p>Delete connection action.</p>
  867. </td>
  868. </tr>
  869. </tbody>
  870. </table>
  871. <table class="detail wide_list">
  872. <tbody>
  873. <tr class="list">
  874. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  875. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  876. = 2;</span></b><code></code></td>
  877. </tr>
  878. <tr>
  879. <td colspan="1">
  880. <p>Delete connection action.</p>
  881. </td>
  882. </tr>
  883. </tbody>
  884. </table>
  885. <table class="detail wide_list">
  886. <tbody>
  887. <tr class="list">
  888. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  889. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  890. = 2;</span></b><code></code></td>
  891. </tr>
  892. <tr>
  893. <td colspan="1">
  894. <p>Delete connection action.</p>
  895. </td>
  896. </tr>
  897. </tbody>
  898. </table>
  899. <table class="detail wide_list">
  900. <tbody>
  901. <tr class="list">
  902. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  903. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  904. = 2;</span></b><code></code></td>
  905. </tr>
  906. <tr>
  907. <td colspan="1">
  908. <p>Delete connection action.</p>
  909. </td>
  910. </tr>
  911. </tbody>
  912. </table>
  913. <table class="detail wide_list">
  914. <tbody>
  915. <tr class="list">
  916. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  917. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  918. = 2;</span></b><code></code></td>
  919. </tr>
  920. <tr>
  921. <td colspan="1">
  922. <p>Delete connection action.</p>
  923. </td>
  924. </tr>
  925. </tbody>
  926. </table>
  927. <table class="detail wide_list">
  928. <tbody>
  929. <tr class="list">
  930. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  931. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  932. = 2;</span></b><code></code></td>
  933. </tr>
  934. <tr>
  935. <td colspan="1">
  936. <p>Delete connection action.</p>
  937. </td>
  938. </tr>
  939. </tbody>
  940. </table>
  941. <table class="detail wide_list">
  942. <tbody>
  943. <tr class="list">
  944. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  945. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  946. = 2;</span></b><code></code></td>
  947. </tr>
  948. <tr>
  949. <td colspan="1">
  950. <p>Delete connection action.</p>
  951. </td>
  952. </tr>
  953. </tbody>
  954. </table>
  955. <table class="detail wide_list">
  956. <tbody>
  957. <tr class="list">
  958. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  959. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  960. = 2;</span></b><code></code></td>
  961. </tr>
  962. <tr>
  963. <td colspan="1">
  964. <p>Delete connection action.</p>
  965. </td>
  966. </tr>
  967. </tbody>
  968. </table>
  969. <table class="detail wide_list">
  970. <tbody>
  971. <tr class="list">
  972. <td class="itemcode"><a name="FS_NM_ACTION_DELETE"></a><code></code><b><span
  973. style="font-family: monospace;">VFS_NM_ACTION_DELETE&nbsp;
  974. = 2;</span></b><code></code></td>
  975. </tr>
  976. <tr>
  977. <td colspan="1">
  978. <p>Delete connection action.</p>
  979. </td>
  980. </tr>
  981. </tbody>
  982. </table>
  983. <hr noshade="noshade" size="1"><span class="appinfo"><em>Double
  984. Commander DFX plugin API</em>
  985. </span>
  986. </body>
  987. </html>