summaryrefslogtreecommitdiff
path: root/xpcom/io/nsILocalFileWin.idl
diff options
context:
space:
mode:
Diffstat (limited to 'xpcom/io/nsILocalFileWin.idl')
-rw-r--r--xpcom/io/nsILocalFileWin.idl121
1 files changed, 121 insertions, 0 deletions
diff --git a/xpcom/io/nsILocalFileWin.idl b/xpcom/io/nsILocalFileWin.idl
new file mode 100644
index 000000000..c036cb96b
--- /dev/null
+++ b/xpcom/io/nsILocalFileWin.idl
@@ -0,0 +1,121 @@
+/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "nsILocalFile.idl"
+
+%{C++
+struct PRFileDesc;
+%}
+
+[ptr] native PRFileDescStar(PRFileDesc);
+
+[scriptable, builtinclass, uuid(e7a3a954-384b-4aeb-a5f7-55626b0de9be)]
+interface nsILocalFileWin : nsILocalFile
+{
+ /**
+ * initWithCommandLine
+ *
+ * Initialize this object based on the main app path of a commandline
+ * handler.
+ *
+ * @param aCommandLine
+ * the commandline to parse an app path out of.
+ */
+ void initWithCommandLine(in AString aCommandLine);
+ /**
+ * getVersionInfoValue
+ *
+ * Retrieve a metadata field from the file's VERSIONINFO block.
+ * Throws NS_ERROR_FAILURE if no value is found, or the value is empty.
+ *
+ * @param aField The field to look up.
+ *
+ */
+ AString getVersionInfoField(in string aField);
+
+ /**
+ * The canonical path of the file, which avoids short/long
+ * pathname inconsistencies. The nsIFile persistent
+ * descriptor is not guaranteed to be canonicalized (it may
+ * persist either the long or the short path name). The format of
+ * the canonical path will vary with the underlying file system:
+ * it will typically be the short pathname on filesystems that
+ * support both short and long path forms.
+ */
+ readonly attribute AString canonicalPath;
+ [noscript] readonly attribute ACString nativeCanonicalPath;
+
+ /**
+ * Windows specific file attributes.
+ */
+
+ /*
+ * WFA_SEARCH_INDEXED: Generally the default on files in Windows except
+ * those created in temp locations. Valid on XP and up. When set the
+ * file or directory is marked to be indexed by desktop search services.
+ */
+ const unsigned long WFA_SEARCH_INDEXED = 1;
+
+ /*
+ * WFA_READONLY: Whether the file is readonly or not.
+ */
+ const unsigned long WFA_READONLY = 2;
+
+ /*
+ * WFA_READWRITE: Used to clear the readonly attribute.
+ */
+ const unsigned long WFA_READWRITE = 4;
+
+ /**
+ * fileAttributesWin
+ *
+ * Set or get windows specific file attributes.
+ *
+ * Throws NS_ERROR_FILE_INVALID_PATH for an invalid file.
+ * Throws NS_ERROR_FAILURE if the set or get fails.
+ */
+ attribute unsigned long fileAttributesWin;
+
+ /**
+ * setShortcut
+ *
+ * Creates the specified shortcut, or updates it if it already exists.
+ *
+ * If the shortcut is being updated (i.e. the shortcut already exists),
+ * any excluded parameters will remain unchanged in the shortcut file.
+ * For example, if you want to change the description of a specific
+ * shortcut but keep the target, working dir, args, and icon the same,
+ * pass null for those parameters and only pass in a value for the
+ * description.
+ *
+ * If the shortcut does not already exist and targetFile is not specified,
+ * setShortcut will throw NS_ERROR_FILE_TARGET_DOES_NOT_EXIST.
+ *
+ * @param targetFile the path that the shortcut should target
+ * @param workingDir the working dir that should be set for the shortcut
+ * @param args the args string that should be set for the shortcut
+ * @param description the description that should be set for the shortcut
+ * @param iconFile the file containing an icon to be used for this
+ shortcut
+ * @param iconIndex this value selects a specific icon from within
+ iconFile. If iconFile contains only one icon, this
+ value should be 0.
+ */
+ void setShortcut([optional] in nsIFile targetFile,
+ [optional] in nsIFile workingDir,
+ [optional] in wstring args,
+ [optional] in wstring description,
+ [optional] in nsIFile iconFile,
+ [optional] in long iconIndex);
+
+ /**
+ * Identical to nsIFile::openNSPRFileDesc except it also uses the
+ * FILE_SHARE_DELETE flag.
+ */
+ [noscript] PRFileDescStar openNSPRFileDescShareDelete(in long flags,
+ in long mode);
+};
+