+ * Acquires the file lock on the current opened whole file if it is not acquired. @n
+ * If the file lock is already acquired by another process, the current process is blocked until the file lock is
+ * released.
+ *
+ * @since 2.1
+ *
+ * @return The pointer to the FileLock instance, @n
+ * else @c null pointer in case of failure
+ * @param[in] lockType The type of the file lock to be created
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c lockType is invalid.
+ * @exception E_INVALID_OPERATION Either of the following conditions has occurred:
+ * - The specified @c lockType cannot be @c FILE_LOCK_SHARED if the current
+ * file is not open for reading.
+ * - The specified @c lockType cannot be @c FILE_LOCK_EXCLUSIVE if the current
+ * file is not open for writing.
+ * @exception E_WOULD_DEADLOCK The method would cause a deadlock. @n
+ * The lock is blocked by a lock from another process, and putting the
+ * calling process to sleep to wait for that lock to become free would
+ * cause a deadlock.
+ * @exception E_MAX_EXCEEDED The number of file locks has exceeded system limitations.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ * @remarks
+ * - The FileLock instance is invalid if the associated %File instance is deleted.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ */
+ FileLock* LockN(FileLockType lockType);
+
+ /**
+ * Acquires the file lock on the specified region of the current opened file if it is not acquired. @n
+ * If the file lock is already acquired by another process, the current process is blocked until the file lock is
+ * released.
+ *
+ * @since 2.1
+ *
+ * @return The pointer to the FileLock instance, @n
+ * else @c null pointer in case of failure
+ * @param[in] lockType The type of file lock to be created
+ * @param[in] offset The starting offset for the locked region
+ * @param[in] length The length of the locked region in bytes
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG Either of the following conditions has occurred:
+ * - The specified @c lockType is invalid.
+ * - The specified @c offset or @c length is negative or is greater than
+ * the system limitation.
+ * @exception E_INVALID_OPERATION Either of the following conditions has occurred:
+ * - The specified @c lockType cannot be @c FILE_LOCK_SHARED if the current
+ * file is not open for reading.
+ * - The specified @c lockType cannot be @c FILE_LOCK_EXCLUSIVE if the current
+ * file is not open for writing.
+ * @exception E_WOULD_DEADLOCK The method would cause a deadlock. @n
+ * The lock is blocked by a lock from another process, and putting the
+ * calling process to sleep to wait for that lock to become free would
+ * cause a deadlock.
+ * @exception E_MAX_EXCEEDED The number of file locks has exceeded system limitations.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ * @remarks
+ * - The FileLock instance is invalid if the associated %File instance is deleted.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ */
+ FileLock* LockN(FileLockType lockType, int offset, int length);
+
+ /**
+ * Tries to acquire the file lock on the current opened whole file. @n
+ * If the file lock is already acquired by another process, @c E_OBJECT_LOCKED is returned.
+ *
+ * @since 2.1
+ *
+ * @return The pointer to the FileLock instance, @n
+ * else @c null pointer in case of failure
+ * @param[in] lockType The type of file lock to be created
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG The specified @c lockType is invalid.
+ * @exception E_INVALID_OPERATION Either of the following conditions has occurred:
+ * - The specified @c lockType cannot be @c FILE_LOCK_SHARED if the current
+ * file is not open for reading.
+ * - The specified @c lockType cannot be @c FILE_LOCK_EXCLUSIVE if the current
+ * file is not open for writing.
+ * @exception E_OBJECT_LOCKED Either of the following conditions has occurred:
+ * - The file lock is already held by another process.
+ * - The file to be locked has been memory-mapped by another process.
+ * @exception E_MAX_EXCEEDED The number of file locks has exceeded system limitations.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ * @remarks
+ * - The FileLock instance is invalid if the associated %File instance is deleted.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ */
+ FileLock* TryToLockN(FileLockType lockType);
+
+ /**
+ * Tries to acquire the file lock on the specified region of the current opened file. @n
+ * If the file lock is already acquired by another process, @c E_OBJECT_LOCKED is returned.
+ *
+ * @since 2.1
+ *
+ * @return The pointer to the FileLock instance, @n
+ * else @c null pointer in case of failure
+ * @param[in] lockType The type of file lock to be created
+ * @param[in] offset The starting offset for the locked region
+ * @param[in] length The length of the locked region in bytes
+ * @exception E_SUCCESS The method is successful.
+ * @exception E_INVALID_ARG Either of the following conditions has occurred:
+ * - The specified @c lockType is invalid.
+ * - The specified @c offset or @c length is negative or is greater than
+ * the system limitation.
+ * @exception E_INVALID_OPERATION Either of the following conditions has occurred:
+ * - The specified @c lockType cannot be @c FILE_LOCK_SHARED if the current
+ * file is not open for reading.
+ * - The specified @c lockType cannot be @c FILE_LOCK_EXCLUSIVE if the current
+ * file is not open for writing.
+ * @exception E_OBJECT_LOCKED Either of the following conditions has occurred:
+ * - The file lock is already held by another process.
+ * - The file to be locked has been memory-mapped by another process.
+ * @exception E_MAX_EXCEEDED The number of file locks has exceeded system limitations.
+ * @exception E_SYSTEM The method cannot proceed due to a severe system error.
+ * @remarks
+ * - The FileLock instance is invalid if the associated %File instance is deleted.
+ * - The specific error code can be accessed using the GetLastResult() method.
+ */
+ FileLock* TryToLockN(FileLockType lockType, int offset, int length);
+
+ /**